如何在 R 中保存地块并让它们看起来很漂亮
Posted
技术标签:
【中文标题】如何在 R 中保存地块并让它们看起来很漂亮【英文标题】:How to save plots in R and have them nice looking 【发布时间】:2018-01-08 09:48:45 【问题描述】:我正在尝试在 R 中绘制一些数据和下面的表格。在 R 中,它看起来不错(图 1),但是,当我导出图片时(图 2),它看起来真的很丑,而且格式不一样。
library(tidyverse)
library(cowplot)
p <- ggplot(iris, aes(Sepal.Length, Petal.Length, col = Species)) + geom_point()
info <- iris %>% group_by(Species) %>% summarise_all(mean)
table_plot <- tableGrob(info, theme = ttheme_default(base_size = 8), rows = NULL)
plot_total <- plot_grid(p, table_plot, nrow = 2, rel_heights = c(4 / 5, 1 / 5))
plot_total
save_plot("iris.png", plot_total)
【问题讨论】:
您可以调整图形的尺寸、字体大小等。这对我来说始终是一个迭代过程。我的建议是,如果您的目标是将图形输出为文件(.pdf、.png 等),请在构建图形后立即开始处理文件的版本。屏幕输出是文件输出的不良决定因素。 【参考方案1】:save_plot()
函数具有参数 base_height
和 base_aspect_ratio
,您可以调整(根据您的情况增加),直到得到您想要的答案。
例如,你可以这样做:
save_plot("iris.png", plot_total, base_height = 8, base_aspect_ratio = 1.4)
base_height
越大,相对于图像大小的字体就越小。而base_aspect_ratio
越大,相对于它的高度,图形就越宽。
我个人的看法是,您的绘图对于您使用的字体大小来说太大了,但这是一个单独的问题。
【讨论】:
【参考方案2】:另一种解决方案是使用 ggsave:
ggsave("plotname.png", plot = p, width = 30, height = 20, units = "cm")
您可能需要稍微调整一下维度才能使其正确。您还可以指定绘图的格式(即 .png 或 .tiff 等),也可以指定单位。
【讨论】:
好吧,save_plot
只是 ggsave
的一个包装,在我看来,它的参数有些不同,这使得它更容易让图形看起来像你想要的那样(因为大多数人考虑纵横比和整体尺寸,而不是宽度和高度)。但人们常常对此感到困惑。我可能需要编写更好的文档。【参考方案3】:
试试:
png('iris.png', width = 1920,height = 1080)
print(plot_total)
dev.off()
【讨论】:
以上是关于如何在 R 中保存地块并让它们看起来很漂亮的主要内容,如果未能解决你的问题,请参考以下文章