在 R-Studio 中,我使用 生成绘图ggplot,然后将它们保存以ggsave()供进一步使用(我知道,这并不理想,但现在不是可选的)。
我的问题是,当我在保存之前生成绘图时,R 以特定大小向我显示它。有了ggsave,我设置width和height,这样的元素显示转移等。我只看到这个后节省的情节。
我想让 R 之前给我看。因此,我假设我需要在ggplot()某处设置绘图的大小,而不是在ggsave().
我怎样才能以最简单的方式做到这一点?
library(ggplot2)
ggplot(mtcars, aes(mpg,disp)) + geom_point() +
labs(title="Rocket science title that will get cut by ggsave")
ggsave("rocketScience.png", width=10, height=7, unit="cm")
Run Code Online (Sandbox Code Playgroud)
您可以使用Eggset_panel_size()包中的函数。使用此功能,您可以固定绘图的面板尺寸。当创建多个绘图时,这非常有用,这些绘图应具有完全相同的绘图区域,但使用不同的轴标签或通常会稍微改变面板尺寸的类似内容。对于带有无缝动画或出版物的演示文稿特别有用。它还确保预览和保存的绘图中具有相同的尺寸。
p <- ggplot(mtcars, aes(mpg,disp)) +
geom_point() +
labs(title="Rocket science title that will get cut by ggsave")
#to view the plot
gridExtra::grid.arrange(egg::set_panel_size(p=p, width=unit(5, "cm"), height=unit(7, "cm")))
#to save the plot
ggsave(filename = "myplot.pdf", plot = egg::set_panel_size(p=p, width=unit(5, "cm"), height=unit(7, "cm")))
Run Code Online (Sandbox Code Playgroud)
在 ggsave 中,您仍然可以操纵保存的整个“页面”的大小,但这只会影响绘图周围的空白量。实际面板尺寸将保持固定。上面的示例图,宽度为 5 厘米或 15 厘米:
