【问题标题】:Lines overlaid on ggplot2 bar plot when saved with ggsave()使用 ggsave() 保存时覆盖在 ggplot2 条形图上的线条
【发布时间】:2016-02-25 14:40:58
【问题描述】:

当我在 R Studio 中查看此条形图时,它显示为我想要的(这是来自屏幕截图):

但是,当我使用ggsave("filename.png") 函数时,它会出现浅色线条叠加(可能需要仔细观察才能看到):

我在 OS X 10.11.3 上使用 R 版本 3.2.3、ggplot2 版本 2.00 和 R Studio 版本 0.99.486。

为什么会发生这种情况?

【问题讨论】:

  • 您使用什么程序查看生成的.png?请参阅this discussion 和/或尝试在其他程序中打开图像以查看线条是否始终存在?似乎 OSX 中的 Preview.app 可能存在问题?也可以随时通过编辑将评论中包含的信息移至问题正文。
  • 澄清一下,您的第二张图片是屏幕截图还是实际上传的 png?
  • 查看 R 代码 wld 帮助
  • @sebastian-c 第二张图片是 png 的实际上传
  • @alistaire 检查条内的细水平线?

标签: r ggplot2


【解决方案1】:

您应该查看Cairo 库。我将它用于演示和报告中的清晰图形。

Cairo 初始化一个使用 cairo 图形的新图形设备 用于渲染的库。当前的实现产生 高质量 PNG、JPEG、TIFF 位图文件、高分辨率 PDF 文件 嵌入字体、SVG 图形和 PostScript 文件。它也是 提供 X11 和 Windows 交互式图形设备。不同于其他 它支持所有图形功能的设备,包括 alpha 混合, 抗锯齿等。

我无法重现您的示例,但这里有一个类似的示例。

library("ggplot2")
pl <- ggplot(aggregate(mpg ~ cyl, mtcars, FUN=mean), 
             aes(x = cyl, y = mpg)) + 
       geom_bar(stat="identity", fill="red3") +
       theme_bw()

library("Cairo")
CairoPNG("CairoCarPlot.png")
pl
dev.off()

上传PNG,它看起来像:

【讨论】: