在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")
答案 0 :(得分:1)
您可以使用egg软件包中的set_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")))
在ggsave内,您仍然可以操纵保存的整个“页面”的大小,但这只会影响绘图周围的空白空间。实际面板尺寸将保持不变。 从上方以5厘米或15厘米为宽度的示例绘图:
答案 1 :(得分:0)