0

R パッケージ: cowplot / ggplot2

ユース ケース: 周辺ヒストグラムを使用した散布図。

問題: ヒストグラムの場合、x 軸でビン サイズを追加したり、下位/上位クラスの間隔を参照したりできません。これらのヒストグラムがないと読みにくいです。

カウプロットでは、必要に応じて目盛りと対応するデータ ラベル (x 軸) を限界プロットに追加する方法はありますか? 周辺プロットのヒストグラムの例

カウプロットを使用した基本散布図 + 周辺ヒストグラム プロット

require(ggplot2)
require(cowplot)

メインプロット:

pmain <- ggplot(data = mpg, aes(x = cty, y = hwy)) + 
  geom_point() +
  xlab("City driving") +
  ylab("Highway driving") + 
  theme_grey()

限界プロット:

xbox <- axis_canvas(pmain, axis = "x") + 
  geom_histogram(
    data = mpg,
    aes(x = cty),
    colour = "black"
  )

結合されたプロット:

p1 <- insert_xaxis_grob(pmain, xbox, grid::unit(0.5, "in"), position = "top")

ggdraw(p1)

出力-1

xbox2ただし、次のプロットを x 軸の限界プロットとして表示したいと思います。

xbox2.1 <- ggplot() + 
  geom_histogram(
    data = mpg,
    aes(x = cty),
    colour = "black"
  )
hist_tab <- ggplot_build(xbox2.1)$data[[1]]

xbox2 <- xbox2.1 +
  scale_x_continuous(
    breaks = c(round(hist_tab$xmin,1),
               round(hist_tab$xmax[length(hist_tab$xmax)],1))
  ) +
  labs(x = NULL, y = NULL) + 
  theme(
    axis.text.x = element_text(angle = 90, size=7,vjust=0.5),
    axis.line = element_blank(),
    axis.text.y=element_blank(),
    axis.ticks.y=element_blank()
  )

xbox2

出力-2

しかし、散布図 + 周辺ヒストグラム (xbox2) を作成できません。最初のものと同じプロットを取得します。

p2 <- insert_xaxis_grob(pmain, xbox2, grid::unit(0.5, "in"), position = "top")
ggdraw(p2)

アウトプット-3

4

1 に答える 1