2

我的目标是在 R 中生成绘图,以便它可以很好地打印在信纸上。下面是我的例子:

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', scale = 0.65) +   
  theme(plot.margin = unit(c(2,2,2,2), "cm")) 

dev.off()

它生成丑陋的情节,我似乎无法找到一种很好地格式化情节的方法,即调整轴和字体的大小。有什么建议么?图片

4

1 回答 1

5

library(cowplot)运行以下代码后: theme_set(theme_cowplot(font_size=8)). theme_cowplot()(加载包时成为默认的 ggplot 主题)的默认字体大小为cowplot14。将其更改为较低的值将减小绘图中的字体大小。theme您还可以在创建每个绘图时使用语句更改各种绘图元素(例如,轴标签、绘图标题等)的单独字体大小。

这是字体较小的 PDF 文件的样子:

在此处输入图像描述

作为另一种选择,当您打开 PDF 设备时,您可以使用您创建的多个高度和宽度值。例如:pdf('outpdf_1.pdf', width=width_letter*2, height=height_letter*2)。这将导致文本相对于绘图区域更小,但绘图仍将呈现在 PDF 文件的单个页面中。我更喜欢第一种方法,但你也可以使用这种方法。

回复您的评论:ggplot 的默认主题是theme_grey(运行?theme_grey以查看此主题和其他可用主题的设置)。您可以看到每个主题都有base_size一个默认设置。标签和标题的所有字体大小都相对于base_size. 您可以通过在控制台中键入其名称来查看每个主题的所有各种设置。例如,运行theme_grey.

当我第一次开始使用 cowplot 时,我注意到当你加载它时,它默认为一个新主题,theme_cowplot. 键入?theme_cowplot以查看其帮助文件并theme_cowplot查看所有设置。您会注意到,与默认的 ggplot 主题不同,theme_cowplot它创建了一个新参数 ,font_size它的作用与base_sizeggplot 的默认主题相同。查看您的输出theme_cowplot可以看到它以theme_grey(base_size=font_size, ...).

更一般地说,您总是可以从一些主题、cowplot、grey、classic 等开始,使用base_size(或font_sizein theme_cowplot)修改整体字体缩放,然后使用theme语句更改单个字体。您还可以将这些更改存储在一个新的主题对象中,然后您可以将其应用于任何情节,这样您就不必在每个新情节中重复所有主题元素。还有一个ggthemes包含其他预打包主题的包。

于 2017-04-27T16:28:13.337 回答