Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将grid.text添加到arrange.grob以导出为PNG_R_Ggplot2_Annotate_Grob - Fatal编程技术网

将grid.text添加到arrange.grob以导出为PNG

将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

我正在尝试创建和导出一个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")

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()