裁剪出情节周围的 ggplot2 空白
Posted
技术标签:
【中文标题】裁剪出情节周围的 ggplot2 空白【英文标题】:Crop out ggplot2 whitespace around plot 【发布时间】:2017-07-08 19:28:49 【问题描述】:当使用coord_fixed()
更改形状时,有没有办法移除 ggplot2 绘图周围的空白?我希望将上方和下方的空白区域裁剪掉,以便仅保留绘图区域和轴标签。我在 R markdown 文件中渲染绘图输出而不保存。
p <- ggplot(mtcars, aes(mpg, wt)) + geom_point()
p + coord_fixed(ratio = 1)
下面的代码产生了如下图:
【问题讨论】:
你想要这样的东西吗?p + coord_equal() + theme(aspect.ratio = 1)
【参考方案1】:
如果您正在寻找同样适用于 R markdown 的解决方案(即输出为 PDF/html),这为我解决了:首先设置纵横比,然后通过 theme()
删除顶部的额外边距设置。
library(ggplot2)
ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width, shape = Species, color = Species)) +
geom_point(size = 5) +
coord_fixed(ratio = 1/2) +
theme(plot.margin=unit(c(-0.30,0,0,0), "null")) # remove margin around plot
有关详细信息,另请参阅this blog post。
会话信息: MacOs 10.13.6、R 3.6.3、ggplot2_3.3.1
【讨论】:
可能还需要设置裁剪选项:***.com/a/57059235/7941188【参考方案2】:使用时:
ggplot(mtcars, aes(mpg, wt)) +
geom_point() +
coord_fixed(ratio = 1) +
ggsave('plot.jpg', width = 6, height = 1.5, dpi = 300)
你会得到一个空白更少的情节:
另一种选择是使用 png 或 jpeg 设备:
p <- ggplot(mtcars, aes(mpg, wt)) +
geom_point() +
coord_fixed(ratio = 1)
jpeg('plot.jpg', width = 600, height = 150)
p
dev.off()
【讨论】:
这个解决方案对我不起作用。这还在您的计算机上运行吗? 这是关于 rmarkdown 还是创建图像输出?如果可行,这似乎是一种 hack?以上是关于裁剪出情节周围的 ggplot2 空白的主要内容,如果未能解决你的问题,请参考以下文章
R:ggplot2,我可以将情节标题设置为环绕并缩小文本以适应情节吗?