我有2个数据框,我想从它们生成3个图,并将它们作为单个列放在1个pdf文件中。
我希望所有的图都具有相同的x轴限制(基本上是相同的x轴),甚至认为它们的名称和获取方式不同。
数据框看起来像这样:
d1
X Y Z
0.04939317 -0.4622222 13651
0.03202451 -0.4261000 13401
0.09950793 -0.3233025 13151
0.11548556 -0.4637981 12486
0.09817597 -0.4751886 12236
0.15770701 -0.5819355 11986
和d2
V0 V1 V2 V3 sign
1 1 0.379 0.612 pos
2 1 0.378 0.620 pos
3 1 0.578 0.571 neg
4 1 0.978 0.561 pos
5 1 0.758 0.261 neg
6 1 0.378 0.126 neg
P.S:两个数据框都比这大,这只是其中的一部分
V0,V1和Z的范围为1至20000
我创建的图是:
来自d2
d2plot=ggplot(d1, aes(V0,V1, fill=sign)) +
geom_tile()+ scale_fill_manual(values = c("neg" = "yellow", "pos"="red")) +
geom_vline(xintercept =10000 ) +
geom_text(mapping=aes(x=10000,y=0, label="Stop"),
size=4, angle=90, vjust=-0.4, hjust=0)
来自d1
d1plot = ggplot(d2) +
geom_errorbarh(aes(x=z,xmin=z-50,xmax=z+50, y=Y, height = 0.02),
color="red")+ opts(legend.position = "none") +
geom_vline(xintercept = 10000) +
geom_text(mapping=aes(x=10000,y=-0.3, label="Stop"),
size=4, angle=90, vjust=-0.4, hjust=0)
我已经尝试了grid.arrange(d1plot, d2plot, ncol=1)
,但每个情节的x轴不同,我尝试更改纵横比,但这会改变y轴..我也尝试使用{{1但是我的x轴值具有不同值的问题,我只想要限制和间隔相同,并且所有图都基于1 x轴在1列中对齐,以比较统计方法的值一个简单的方法。
答案 0 :(得分:1)
如果手动设置x轴限制,它应该有效。
添加
+ coord_cartesian(xlim = c(1, 20000))
在合并之前到每个情节。
要获得不同的宽高比,您可以使用
+ coord_fixed(xlim = c(1, 20000), ylim = c(1, 20000))
更改每个绘图的ylim
参数以适合您的实际数据。
答案 1 :(得分:1)
您还可以将每个单独的绘图保护为PDF,然后在Adobe Illustrator或Inkscape中打开它们,并将这些元素复制到一个PDF中。这也将让你有机会在你的图表上添加一些内容并添加一些额外的解释等。在这个网站(http://flowingdata.com)上有很多教程可以帮助你,但基础非常简单。安全R绘制为PDF并在Illustrator中打开,您可以选择所有元素(因此也可以复制和组合它们)。祝你好运!