如何在 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_heightbase_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 中保存地块并让它们看起来很漂亮的主要内容,如果未能解决你的问题,请参考以下文章

如何在工具栏中自动布局项目

如何将htmlTable从查看器导出到R中的word文档

如何快速开发一个漂亮的网站?包括前端的设计,css布局等

让 Objective-C 类看起来很漂亮

如何根据多个条件对行求和 - R? [复制]

如何将表单数据保存为 XML 或 CSV?