【问题标题】:Increasing the quality of EMF outputs in R and ggplot2提高 R 和 ggplot2 中 EMF 输出的质量
【发布时间】:2011-10-02 02:58:22
【问题描述】:

我正在使用 ggplot2 和 win.graph 命令生成并保存 EMF 文件。输出图质量低下,线条看起来参差不齐。我真的需要 EMF 格式(导出为 pdf 可以解决问题,但我需要 EMF 文件)。我怎样才能使它成为高质量的? (emf 输出为here,以防您想看)

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()

【问题讨论】:

  • 可以用ggsave去掉几行代码:ggsave("c:/test.emf", p)

标签: r ggplot2 .emf


【解决方案1】:

EMF 是基于矢量的。我将 EMF 文件粘贴到 powerpoint 幻灯片中,我注意到它们被渲染为低分辨率。如果您右键单击 EMF 文件并选择编辑照片,它将正确呈现它。这解决了我的问题。

更新: 我继续编写了一个小 VBA 脚本来取消对 EMF 文件的分组。它将它分解成一个可以轻松缩放的图形对象。现在看起来非常漂亮。

【讨论】:

  • 您在 MS Word 中是否遇到过类似的问题?右键单击 + edit picture 技巧在我的情况下不起作用。分辨率似乎还可以,但图形元素(例如点符号)略有失真。
【解决方案2】:

您可以将 ggplot 保存为 SVG,然后使用 Inkscape 对其进行后期处理。 它易于使用、免费且效果极佳。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-14
    相关资源
    最近更新 更多