如何提高R中绘图的分辨率?

问题描述 投票:6回答:1

我在R中做简单的图,希望得到的图像分辨率非常高。我试过只在输出图像代码中指定大的高度和宽度参数,但这只是做出了一个带有模糊数据点的大图像。

我现在的代码是这样的。

png(filename="simple_graphic.png", width=5600, height=1000)
depth_plot <- c(a large list of data)
plot(depth_plot, type="o", col="blue", log="y",)
dev.off()

任何优化这段代码以提高每个数据点的分辨率的帮助都非常感激!

r plot resolution
1个回答
7
投票

这个问题有几种可能的答案,评论中小心翼翼的想教你。哪儿 找到答案,而不是仅仅给你答案。我将通过提供他们所暗示的东西来破坏这一点,但也提出另一个问题。

  1. 答案是...:使用 res=300 (或更高),在你的呼叫中,以png。从 help(png)它指出默认的ppi(每英寸像素)是72,低于你想要的高分辨率图形。对于大多数打印机和屏幕来说,300是不错的,YMMV。

    png(filename="simple_graphic.png", res=300) # perhaps width/height as well
    # ...
    dev.off()
    
  2. 另一个问题: 用什么格式才能最好地显示我的图形? 这一点常常被很多用R做图的人所忽略,虽然很遗憾,但很容易补救:使用基于矢量的图像格式。如果你使用的是Powerpoint或Word,那么你可能最好制作一个增强的元文件格式(EMF)文件。

    install.packages('devEMF') # just once
    library(devEMF)
    emf(filename="simple_graphic.emf", width=1024, height=800)
    # ...
    dev.off()
    

    如果你能够使用可扩展的矢量图形(SVG)格式的图像(如Inkscape、Scribus、......),那么只需使用 svg(...) 代替 emf(...). 同样的选项规则适用。

    同样的,如果你是LaTeX,你可以直接使用 pdf(...) (语法相同)。

NB: 使用这些基于矢量的图像格式(反之基于光栅的如PNG)的一个好处是,如果你想用你不知道如何在R中调整图形,你可以在Inkscape中打开EMFSVGPDF,以便轻松地修改线条(颜色、粗细)、文本(字体、大小、位置)、方框、箭头等。而Inkscape将允许你导出为EMF、SVG、PDF、PNG、 ...

© www.soinside.com 2019 - 2024. All rights reserved.