将grid.text添加到arrange.grob以导出为PNG
我正在尝试创建和导出一个PNG文件,其中有几个图排列在一个3 X 2的矩阵中。每行(包含两个绘图)都有自己的X轴。我可以通过grid.text添加其他轴,但此grid.text不会与PNG文件一起导出。如何为PNG导出向打印矩阵添加额外的文本或GROB 下面是一个2 X 2的绘图矩阵示例将grid.text添加到arrange.grob以导出为PNG,r,ggplot2,annotate,grob,R,Ggplot2,Annotate,Grob,我正在尝试创建和导出一个PNG文件,其中有几个图排列在一个3 X 2的矩阵中。每行(包含两个绘图)都有自己的X轴。我可以通过grid.text添加其他轴,但此grid.text不会与PNG文件一起导出。如何为PNG导出向打印矩阵添加额外的文本或GROB 下面是一个2 X 2的绘图矩阵示例 a<-rnorm(100,56,3) b<-rnorm(100,43,6) c<-data.frame(cbind(a,b)) colnames(c) <- c("A","B") li
a<-rnorm(100,56,3)
b<-rnorm(100,43,6)
c<-data.frame(cbind(a,b))
colnames(c) <- c("A","B")
library(ggplot2)
library(gridExtra)
library(grid)
plot1<-ggplot(c, aes(x=A, y=B))+ geom_point(size=3)+stat_smooth()+
ggtitle("Plot1")+ ylab("Y Axis")
plot1
plot2<-ggplot(c, aes(x=B, y=A))+ geom_point(size=3)+ stat_smooth()+
ggtitle("Plot2")+ ylab("Y Axis")
plot2
plot3<-ggplot(c, aes(x=B, y=A))+ geom_point(size=3)+stat_smooth(se=FALSE)+
ggtitle("Plot3")+ ylab("Y Axis")
plot3
plot4<-ggplot(c, aes(x=A, y=B))+ geom_point(size=3)+ stat_smooth(se=FALSE)+
ggtitle("Plot4")+ ylab("Y Axis")
plot4
grid.arrange(arrangeGrob(plot1,plot2,plot3, plot4,ncol=2,
sub=textGrob("A (hr)", vjust=0,gp = gpar(fontsize=20, fontfamily="Times New Roman")),
left=textGrob(" B (MPH)", rot=90,gp = gpar(fontsize=18, fontfamily="Times New Roman"), vjust=1)))
grid.text("This is were the additional x-axis goes", x = unit(0.5, "npc"), y = unit(.51, "npc"),gp = gpar(fontsize=20, fontfamily="Times New Roman"))
a您需要打印网格对象。(这是一个常见问题):
我看不到任何png()
调用。我看不到调用png()将如何创建pdf。发生的打印由对图形设备和dev.off的开始调用“限制”。我将把打印出来的内容发布到我的系统上的png文件中。听起来您正在从交互式设备进行保存。这将为您提供单独的项目。。。。这就是我显式调用png()的原因;印刷品(…);网格文本(.);dev.off()
。实际上,打印并不是绘制网格对象的方式(使用grid.draw
),只有lattice和ggplot2设置了这一趋势。谢谢,@baptiste。下一次我会先试试。在较新版本的gridExtra
(>2.0.0?)中,sub
已成为bottom
。我想知道包作者是否知道BDSM对这些术语的使用?
library(gridExtra)
png(); print(
grid.arrange(arrangeGrob(plot1,plot2,plot3, plot4,ncol=2,
sub=textGrob("A (hr)", vjust=0,gp = gpar(fontsize=20, fontfamily="Times New Roman")),
left=textGrob(" B (MPH)", rot=90,gp = gpar(fontsize=18, fontfamily="Times New Roman"), vjust=1)))
)
grid.text("This is were the additional x-axis goes", x = unit(0.5, "npc"),
y = unit(.51, "npc"),gp = gpar(fontsize=20, fontfamily="Times New Roman"))
dev.off()