ggplot に 2 つのプロットがあり、軸上に同様の範囲があり、それらを整列させたいと考えています。
使用:
library(grid)
grid.newpage()
grid.draw(rbind(ggplotGrob(g1), ggplotGrob(g2), size = "last"))
ここでsize='last'
、グリッドが x に対して整列されるようにすると、次のようなレイアウトが得られます。
一番上のグラフは、私が描写したい単純な行に対して過度の垂直範囲を持っています.
私は、次のようなイメージをもっと持ちたいと思っています。
または、g1 チャートを g2 チャートの軸の下に配置します。(一般性のために、どちらかを選択できるようにしたい、または g1 を g2 の上に重ねることさえできるようにしたいとしましょう。
(私の元のモデルは、g1 コンポーネントが y=0 の g2 チャートのレイヤーとして単純に設定された単一のチャートでしたが、そのレイアウトではチャートが雑然として読めないため、元の y=0 を移動する必要があると考えました。要素を別のパネル (つまり g1) に追加します。
最小限の例:
size=50
df1=data.frame(x=seq(1,size),y=sample(-100:100,size,rep=TRUE))
df2=data.frame(x=seq(1,size),r=replicate(size,paste(sample(c(letters, LETTERS),3),collapse='')))
g1=ggplot(df1)+geom_point(aes(x=x,y=y))
g2=ggplot(df2)+geom_text(aes(x=x,y=0,label=r),angle=45,size=2)
library(grid)
grid.newpage()
grid.draw(rbind(ggplotGrob(g1), ggplotGrob(g2), size = "last"))
散布図に対してラベル ストリップ (g2) をきれいに配置したいと考えています。g2 ストリップはgeom_text()
要素として元のチャートの一部でしたy=0
が、ラベルがそこに配置されているため、チャートはあまりにも散らかっていました。