使用多个面板准备R中的出版物质量数据
我在以tiff格式制作300ppi绘图以供发布时遇到了一个非常具体的问题。我发现ggsave可以很好地处理单个绘图,然后可以将其导出到GIMP以压缩生成的大型tiff文件。然而,当绘制两个相邻的图形时,它似乎遇到了麻烦,例如使用多个面板准备R中的出版物质量数据,r,data-visualization,ggplot2,R,Data Visualization,Ggplot2,我在以tiff格式制作300ppi绘图以供发布时遇到了一个非常具体的问题。我发现ggsave可以很好地处理单个绘图,然后可以将其导出到GIMP以压缩生成的大型tiff文件。然而,当绘制两个相邻的图形时,它似乎遇到了麻烦,例如 plot1<-ggplot(.........) plot2<-ggplot(.........) grid.arrange(plot1, plot2, ncol=2) ggsave(filename = "Figure 1.tiff", scale = 1,
plot1<-ggplot(.........)
plot2<-ggplot(.........)
grid.arrange(plot1, plot2, ncol=2)
ggsave(filename = "Figure 1.tiff", scale = 1, width = 10, height = 5,
units = "cm", dpi = 300)
plot1我最近也遇到了同样的问题,我找不到现成的解决方案,最后我为ggplot对象列表创建了一个包装函数,试图在一种平衡网格上打印条目
'plotP' <- function (P){
# P is a list of plots
require(gridExtra)
N <- length(P)
Ncol <- ceiling(sqrt(N))
Nrow <- ceiling(N/Ncol)
grid.newpage()
pushViewport(viewport(layout=grid.layout(Nrow, Ncol)))
row <- 1
col <- 1
for (i in 1:N){
print(P[[i]], vp=viewport(layout.pos.row=row, layout.pos.col=col))
col <- col + 1
if (col > Ncol){
col <- 1
row <- row + 1
}
}
}
“plotP”在堆栈溢出时询问此问题可能更好。
plotP(list(plot1, plot2))
name <- 'grid-of-plots'
height <- 6
width <- 8
dpi <- 300
dev.copy(tiff, paste0(name, ".tiff"), width = width*dpi, height =height*dpi)
try(dev.off(), silent = TRUE)#close window