我想做一个复合图形,它是3个面板宽8个面板高。在每个面板内将是一个图形,需要多个R命令来创建,就像前3个图形可能是
#1
plot(c(2:20), c(2:20), ylab="", xlab="", axes=FALSE)
par(new=TRUE)
plot(c(1:18, c(1:18), xact="n"), type="l", xlab="", ylab="")
#2
plot(c(2:20), c(2:20), ylab="", xlab="", axes=FALSE)
par(new=TRUE)
plot(c(1:18, c(1:18), xact="n"), type="l", xlab="", ylab="", col=2)
#3
plot(c(2:20), c(2:20), ylab="", xlab="", axes=FALSE, col=3)
par(new=TRUE)
plot(c(1:18, c(1:18), xact="n"), type="l", xlab="", ylab="")
然后我想使用这样的命令来并排显示这3个:网格排列(绘图1、绘图2、绘图3)
我不知道如何将#1、#2和#3分别保存为plot1、plot2和plot3。如何保存绘图的示例似乎都是基于单个绘图命令,而不是多个命令来绘制绘图。帮助页面说是grob,但没有解释什么是可接受的grob,或者如何创建它。我应该截图并将其保存为jpeg文件吗?
谢谢你的帮助。
2条答案
按热度按时间vfh0ocws1#
你可以设置
par(mfrow = c(8, 3))
。这将在一个8 x 3网格的面板中绘制每一个图。只有当plot.new
被(隐式)调用时,才会继续绘制下一个图。koaltpgm2#
更新和解决方案:
不要使用
grid.arrange()
,不要使用jpeg()
,recordplot()
,pdf()
或ggplot
...下面的代码通过在原始图中添加特征来工作。然后它有助于(在RStudio中)将结果导出为高分辨率PNG。我可以在MS Word中很好地分别标记行/列。