繁体   English   中英

R ggplot,删除ggsave/ggplot中的白边

[英]R ggplot, remove white margins in ggsave/ggplot

如何删除ggsave中的白边?

我的问题与Remove white space (ie, margins) ggplot2 in R 完全相同 但是,那里的答案对我来说并不理想。 我想给ggsave一个heightweight ,而不是反复试验固定但未知的纵横比,并希望我的情节(即标题顶部到 x 标签底部)自动扩展到没有白边的配置。

如何删除 .png 周围奇怪的白边(用 r、ggplot 绘制)? 提供了一种使边距透明的方法,但它们仍然存在并且绘图小于我在保存的文件中设置的heightwidth

ggplot2 中的 Remove Plot Margins 中找到答案

theme(plot.margin=grid::unit(c(0,0,0,0), "mm"))

做这份工作

如果您使用的是 Unix 或 Mac OS,则当各种边距选项不够修剪时,另一种选择是通过R调用系统命令的能力使用 Unix 中可用的pdfcrop命令:

# after saving image, run pdfcrop 
system2(command = "pdfcrop", 
        args    = c("name_or_path_of_file_before_crop.pdf", 
                    "name_or_path_of_file_after_crop.pdf") 
        )

有关更多信息,请参阅: https : //robjhyndman.com/hyndsight/crop-r-figures/

在链接到此博客文章的此答案中,有一个解决方案也适用于不同的纵横比。 您可以独立于操作系统裁剪硬盘驱动器上的图像:

knitr::plot_crop()

如果 pdf 和pdfcrop不是你的东西,例如你在带有 png 标志的 png 中工作 - 然后在这里看到我的答案: 如何以适当的纵横比保存 ggplot2 图形?

我最终在ggsave之后添加了一个这样的命令:

system("/usr/local/bin/mogrify -trim -border 8 -bordercolor white output.png")

-trim删除现有的边距, -border 8 -bordercolor white在绘图周围添加一个小的 8px 边距。

对于具有灰色背景的图,在图的边缘留下了一些白色像素,因此我使用-shave选项删除了一些额外的像素:

system("/usr/local/bin/mogrify -trim -shave 4x4 output.png")

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM