在绘图周围裁剪出 ggplot2 空白

Crop out ggplot2 whitespace around plot

在使用 coord_fixed() 更改形状后,是否有办法去除 ggplot2 图周围的白色 space?我希望将上方和下方的白色 space 剪掉,以便只保留绘图区域和轴标签。我在不保存的情况下在 R markdown 文件中渲染绘图输出。

 p <- ggplot(mtcars, aes(mpg, wt)) + geom_point()
 p + coord_fixed(ratio = 1)

下面的代码生成以下图:

当您使用时:

ggplot(mtcars, aes(mpg, wt)) + 
  geom_point() + 
  coord_fixed(ratio = 1) +
  ggsave('plot.jpg', width = 6, height = 1.5, dpi = 300)

你得到一个白色较少的情节space:

另一种选择是使用 png 或 jpeg 设备:

p <- ggplot(mtcars, aes(mpg, wt)) + 
  geom_point() + 
  coord_fixed(ratio = 1)

jpeg('plot.jpg', width = 600, height = 150)
p
dev.off()

如果您正在寻找一种也适用于 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 了解更多详情。

Session 信息: MacOS 10.13.6,R 3.6.3,ggplot2_3.3.1