提高R和ggplot2中EMF输出的质量

11

我使用ggplot2和win.graph命令生成并保存EMF文件,但输出的图形质量较低且线条看起来锯齿状。 我非常需要以EMF格式保存(将其导出为pdf可以解决问题,但我需要EMF文件)。如何使其高质量?(如果您想查看,EMF输出位于此处

require(ggplot2)
my.dates = as.Date(c("2011-07-22","2011-07-23",
                     "2011-07-24","2011-07-28","2011-07-29"))
my.vals  = c(5,6,8,7,3)
my.data <- data.frame(date =my.dates, vals = my.vals)
plot(my.dates, my.vals)
p <- ggplot(data = my.data, aes(date,vals))+ geom_line(size = 1.5)
p <- p + scale_x_date(format="%m/%d", ' ')
win.graph(width=860/72, height=450/72,pointsize = 12)

print(p)
savePlot("c:/test.emf",type="emf")
dev.off()

5
你可以使用 ggsave 函数来简化代码,它可以保存绘图结果为文件:ggsave("c:/test.emf", p) - hadley
2个回答

8

EMF 是矢量图形格式。我将 EMF 文件粘贴到 PowerPoint 幻灯片中时,注意到它们的分辨率很低。如果您右键单击 EMF 文件并选择“编辑图片”,则可以正确渲染它。这解决了我的问题。

更新: 我编写了一个小 VBA 脚本,将 EMF 文件解组。它将其拆分为可轻松缩放的图形对象。现在看起来非常好。


你在 MS Word 中有类似的问题吗?在我的情况下,右键单击 + “编辑图片” 技巧无法正常工作。分辨率似乎没问题,但图形元素(例如点符号)略微失真。 - Valentin_Ștefan

-1

你可以将ggplot保存为SVG格式,然后使用Inkscape进行后处理。这个工具易于使用、免费且效果非常好。


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