我在 ggplot 中有两个图,在我想要对齐的轴上具有相似的范围。
Using:
library(grid)
grid.newpage()
grid.draw(rbind(ggplotGrob(g1), ggplotGrob(g2), size = "last"))
where size='last'
确保网格与 x 对齐,我得到如下布局:
![enter image description here](https://i.stack.imgur.com/lh4uO.png)
对于我想要描绘的简单行,顶部图表的垂直范围过大。
我想要一张更符合以下内容的图像:
![enter image description here](https://i.stack.imgur.com/CJ2NX.png)
或者,将 g1 图表对齐在 g2 图表的轴下方。 (为了一般性,假设我希望能够选择其中之一,甚至将 g1 覆盖在 g2 之上。
(我的原始模型是一个单一图表,其中 g1 组件简单地设置为 g2 图表中的一个图层,y=0;但是,该图表太混乱,无法使用该布局进行阅读,所以我认为应该移动原始的 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
但图表周围太混乱了,标签也放在那里。