我在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()
非常感谢任何帮助优化此代码以使每个数据点的分辨率更高的帮助!
答案 0 :(得分:6)
这个问题有几种可能的答案,评论小心谨慎,试着教你哪里找到给你的答案副。我会通过提供他们提到的内容来破坏这一点,但也会提出另一个问题:
答案:在您对png的调用中使用res=300
(或更高)。从help(png)
开始,它表示默认的ppi(每英寸像素数)为72,低于精细分辨率图形所需的值。对于大多数打印机和屏幕来说,300是合适的,YMMV。
png(filename="simple_graphic.png", res=300) # perhaps width/height as well
# ...
dev.off()
另一个问题:以什么格式可以最好地展示我的图表?许多人用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。
注意:进入这些基于矢量(基于副栅格的PNG)图像格式之一的一个好处是,如果你想要/需要以你不知道如何在R中的方式精细化图形,您可以在Inkscape中打开EMF / SVG / PDF,以便轻松修改线条(颜色,粗细),文本(字体,大小,位置),方框,箭头等.Inkscape将允许您导出到EMF, SVG,PDF,PNG,...