如何在R中增加我的绘图的分辨率?

时间:2014-04-02 13:54:35

标签: r plot resolution

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

非常感谢任何帮助优化此代码以使每个数据点的分辨率更高的帮助!

1 个答案:

答案 0 :(得分:6)

这个问题有几种可能的答案,评论小心谨慎,试着教你哪里找到给你的答案副。我会通过提供他们提到的内容来破坏这一点,但也会提出另一个问题:

  1. 答案:在您对png的调用中使用res=300(或更高)。从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
    require(devEMF)
    emf(filename="simple_graphic.emf", width=1024, height=800)
    # ...
    dev.off()
    

    如果您能够以可缩放矢量图形(SVG)格式(例如,Inkscape,Scribus,...)使用图像,那么仅使用svg(...)代替emf(...)。相同的选项/规则适用。

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

  3. 注意:进入这些基于矢量(基于副栅格的PNG)图像格式之一的一个好处是,如果你想要/需要以你不知道如何在R中的方式精细化图形,您可以在Inkscape中打开EMF / SVG / PDF,以便轻松修改线条(颜色,粗细),文本(字体,大小,位置),方框,箭头等.Inkscape将允许您导出到EMF, SVG,PDF,PNG,...