将多个图输出到R中的文件

时间:2017-04-26 17:33:06

标签: r file pdf plot

我试图将两张图并排绘制并保存到文件中。这是我的代码如下。问题是我无法控制边距。无论我输入什么保证金,它们都不会反映在文件中。

一般来说,有关于如何在R中正确打印文件的任何教程。我正在阅读所有手册和示例,但它不太清楚。当我打印时,事情以非常有趣的方式变形,我不记得在Matlab或Python中遇到同样的问题。 R有自由度。

library(ggplot2)
library(gridExtra)

sample_df <- data.frame(col_1=c(1,2,3), col_2=c(6,7,8))
plot_1 <-ggplot(data=sample_df, aes(x = col_1, y =col_2, group=1))+
  geom_line()+ggtitle('Title 1')
plot_2 <-ggplot(data=sample_df, aes(x = col_1, y =col_2, group=1))+
  geom_line()+ggtitle('Title 2')

width_letter = 6
height_letter = width_letter*8.5/11

pdf('outpdf_1.pdf', width=width_letter, height=height_letter)
par(mai=c(3.02,0.82,0.82,0.42))
grid.arrange(plot_1, plot_2, ncol=2)
dev.off()

1 个答案:

答案 0 :(得分:1)

您可以使用cowplot包。主题函数内的plot.margin允许设置边距。这是一个在四边各有2厘米边距的例子:

library(ggplot2)
library(gridExtra)
library(cowplot)

sample_df <- data.frame(col_1=c(1,2,3), col_2=c(6,7,8))
plot_1 <-ggplot(data=sample_df, aes(x = col_1, y =col_2, group=1))+
  geom_line()+ggtitle('Title 1')
plot_2 <-ggplot(data=sample_df, aes(x = col_1, y =col_2, group=1))+
geom_line()+ggtitle('Title 2')

width_letter = 6
height_letter = width_letter*8.5/11

pdf('outpdf_1.pdf', width=width_letter, height=height_letter)
plot_grid(plot_1, plot_2, labels = "AUTO", ncol = 2, align = 'v') +   
 theme(plot.margin = unit(c(2,2,2,2), "cm")) 

dev.off()