デュアル軸で対応するバーに合わせポイント

Amandeep Jiddewar:

使用してggplot、どのように私は合わせないgeom_pointその対応するバーとし、これらの点に黒のアウトラインを追加します。以下は、最小限のコードとそれの出力があります。

temp_mpg <- mpg %>% group_by(year, manufacturer) %>% summarise(displ = first(displ),
                                                               cty = first(cty)) 

coeff <- max(temp_mpg$cty) / max(temp_mpg$displ)

temp_mpg %>% ggplot(aes(x = manufacturer, fill=as.factor(year))) +
  geom_bar( aes(y = displ), 
            stat="identity", position='dodge',
            color="black") +
  geom_point( aes(y = cty / coeff, color = as.factor(year)), 
              size = 4) +
  scale_y_continuous(
    sec.axis = sec_axis(~(.) * coeff)
  ) + 
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 90)
  )

出力: ここでは、画像の説明を入力します。

teunbrand:

あなたは、あなたに位置を追加することができgeom_point()、アライメントのために。黒の概要については、設定しshape = 21た後、塗りつぶしに変数をマップします。

temp_mpg %>% ggplot(aes(x = manufacturer, fill=as.factor(year))) +
  geom_bar( aes(y = displ), 
            stat="identity", position='dodge',
            color="black") +
  geom_point( aes(y = cty / coeff, fill = as.factor(year)), 
              size = 4, shape = 21, position = position_dodge(0.9)) +
  scale_y_continuous(
    sec.axis = sec_axis(~(.) * coeff)
  ) + 
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 90)
  )

ここでは、画像の説明を入力します。

私はドキュメントから理解されるように、デフォルトのバーの幅はとてもおそらく0.9は避け幅のために良い選択である、データ解像度の90%です。

おすすめ

転載: http://10.200.1.11:23101/article/api/json?id=384325&siteId=1