【问题标题】:Crop out ggplot2 whitespace around plot裁剪出情节周围的 ggplot2 空白
【发布时间】: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)

标签: r ggplot2 whitespace margin crop


【解决方案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

【讨论】:

【解决方案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?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-07
  • 1970-01-01
  • 1970-01-01
  • 2015-05-14
  • 2011-03-20
  • 2018-05-15
相关资源
最近更新 更多