格式化 ggplot 字体大小以在纸上打印
Format ggplot font sizes for printing on paper
我的目标是在 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()
它生成难看的图,我似乎无法找到一种很好地格式化图的方法,即调整轴和字体的大小。有什么建议吗?
在 library(cowplot)
运行 之后是以下代码:theme_set(theme_cowplot(font_size=8))
。 theme_cowplot()
的默认字体大小(加载 cowplot
包时成为默认的 ggplot 主题)是 14。将其更改为较低的值将减小绘图中的字体大小。您还可以在创建每个绘图时使用 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
,它与 ggplot 默认主题中的 base_size
起着相同的作用。查看 theme_cowplot
的输出,您可以看到它以 theme_grey(base_size=font_size, ...)
.
开头
更一般地说,你总是可以从一些主题开始,cowplot, grey, classic 等,用base_size
修改整体字体缩放(或font_size
in theme_cowplot
)然后使用 theme
语句更改单个字体。您还可以将这些更改存储在一个新主题 object 中,然后您可以将其应用于任何情节,这样您就不必在每个新情节中重复所有主题元素。还有一个 ggthemes
包,其中包含额外的 pre-packaged 主题。
我的目标是在 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()
它生成难看的图,我似乎无法找到一种很好地格式化图的方法,即调整轴和字体的大小。有什么建议吗?
在 library(cowplot)
运行 之后是以下代码:theme_set(theme_cowplot(font_size=8))
。 theme_cowplot()
的默认字体大小(加载 cowplot
包时成为默认的 ggplot 主题)是 14。将其更改为较低的值将减小绘图中的字体大小。您还可以在创建每个绘图时使用 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
,它与 ggplot 默认主题中的 base_size
起着相同的作用。查看 theme_cowplot
的输出,您可以看到它以 theme_grey(base_size=font_size, ...)
.
更一般地说,你总是可以从一些主题开始,cowplot, grey, classic 等,用base_size
修改整体字体缩放(或font_size
in theme_cowplot
)然后使用 theme
语句更改单个字体。您还可以将这些更改存储在一个新主题 object 中,然后您可以将其应用于任何情节,这样您就不必在每个新情节中重复所有主题元素。还有一个 ggthemes
包,其中包含额外的 pre-packaged 主题。