ggplot2:模糊的分面标签

4
无论我是使用 ggsave() 还是 png(),保存 ggplot 图像时都会导致分面标签模糊不清。例如,以下代码产生了一个分面标签“F”,它看起来像下面的图片,文本光栅的外部像素有颜色。
ggplot(data.frame(x=1, y=1, f='F'), aes(x, y)) +
    facet_grid(. ~ f)
ggsave('foo.png')

在这里输入图片描述

提前感谢任何建议!

PS -- 根据 @Brian 的要求,我更新了这篇帖子,以注明我使用的是 Windows 机器。

PPS -- 我再次更新了我的帖子,这一次是为了澄清我打算将这个图形插入到 Word 中。所以按照 @Masoud 所指向的此文中的建议#4,我想使用像素格式(例如PNG),而不是矢量格式(例如PDF)。


https://www.r-bloggers.com/high-resolution-figures-in-r/ - M--
https://danieljhocking.wordpress.com/2013/03/12/high-resolution-figures-in-r/ - M--
@Brian,我同意PDF看起来很棒,但是对于我的特定目的,PDF行不通;我需要一个可以插入到Word中的png/jpeg/tiff格式。抱歉在我最初的帖子中没有表述清楚这一点。 - Mariel
1
@Masoud,根据你提供的帖子,我尝试使用替代函数和增加分辨率来解决问题,但是文字光栅外部像素的着色仍然存在。 - Mariel
@Mariel,你能否更新一下你的帖子,加上你电脑的操作系统信息?另外,尝试添加不同的字体到标签中,看看会有什么变化。 - Brian
显示剩余3条评论
2个回答

3
尝试禁用抗锯齿功能。
默认设置(quartz): enter image description here 使用 ggsave('foo.png', antialias="none") 后的效果: enter image description here

补充一下,你可以在?png?windows中找到选项,这些选项会传递给ggsave - Brian
感谢@baptiste! - Mariel

1
尝试保存为基于向量的格式,如 .eps
ggplot(data.frame(x=1, y=1, f='F'), aes(x, y)) +
  facet_grid(. ~ f)
ggsave('foo.eps', device = 'eps')

或者您可以将图像保存为 .jpeg 文件,并使用 dpi 选项增加每英寸点数。

ggplot(data.frame(x=1, y=1, f='F'), aes(x, y)) +
  facet_grid(. ~ f)
ggsave('foo.jpeg', device = 'jpeg',dpi = 5000)

有多种更高质量的格式可供选择,您可以通过运行?ggsave来查看具体信息。


感谢@giac_man。我同意PDF看起来很棒,但是对于我的特定目的,PDF不适用;我需要一个可以插入到Word中的png/jpeg/tiff格式。抱歉我在原帖中没有表述清楚。 - Mariel
您可以选择不同的输出格式。例如,.eps 可以作为图像插入到 Word 中。我已经更新了我的答案。 - Giacomo
我在将基于向量的图形与Word协调时遇到了麻烦。根据@Masoud指向我的这篇文章中的建议#4,如果可能的话,我更愿意使用基于像素的格式。 - Mariel
很抱歉,这个问题与 R 无关,而是与 Word 相关。我认为我已经回答了你最初的问题。如果你想要出版质量的图片,你应该使用 pdf 或矢量化图像。 - Giacomo
谢谢,@giac_man。我会更新帖子,澄清我计划将图像嵌入到Word文档中。对于最初没有明确说明这一点,我再次表示抱歉。不过,我认为这不是一个Word的问题。如果我直接打开ggsave()或png()生成的png文件,即使我没有使用Word打开图像,文字栅格的外部像素上的着色也是可见的。 - Mariel
我认为@baptiste的答案是最好的,但我也更新了我的答案,提供了一种替代方案,似乎通过改善dpi解决了这个问题。 - Giacomo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接