我们发送文章的期刊要求提供以下内容:
为了确保您的数字的最佳复制质量,我们将欣赏高分辨率文件。所有数字最好应采用TIFF或EPS格式......并应具有以下分辨率:
图表:800 - 1200 DPI
照片:400 - 800 DPI
颜色(仅CMYK):300 - 400 DPI(DPI =每英寸点数)
由于我正在发送图表,因此我尝试使用tiff保存它。
以下是我正在使用的代码:
tiff(filename = "c:\\aaa.tiff",
res = 800, pointsize = 2)
plot(1:100)
dev.off()
但遗憾的是,它会产生一个非常“笨重”的图像 - 如果我不在哪里使用pointsize = 2
,我会收到错误消息:
plot.new()出错:数字边距太大
有什么建议吗?
答案 0 :(得分:28)
答案 1 :(得分:18)
简短回答:
这是一个庞大的文件,因为分辨率光栅文件(TIFF)越高,文件就越大。
另一种选择,EPS,就像PDF或PS。只需保存其中任何一个。这是一种矢量图像格式,他们说可以接受。它将更紧凑,质量更高(除非你的数字包含大量的点或线。)
答案很长:
他们要求的一种格式是TIFF,一种栅格格式。它将信息保存为表示图像中每个像素的值。如果图像是100 DPI和5“方形,那么它是500x500,它可以节省250000像素的信息。随着图像分辨率的提高和图像尺寸保持不变,所需的信息点也会增加。在200 DPI时它是1000x1000并且1e6像素的信息。这解释了为什么你的文件太笨重了。
为了获得5“平方的高质量打印图像,您需要大约300-400 DPI(每英寸点数)。这样您就不会看到构成图像的每个单独的小像素。如果是在较低的分辨率下,图像仍然是5“x 5”,但构成图像的每个单独的方块(像素)都很大,你可以看到它们。这就是为什么他们要求分辨率。否则,你的文字和线条图形会出现块状,锯齿状或模糊。这就是为什么计算机屏幕上的文字(目前只有100 DPI左右)的质量不如纸张上打印的那么高(通常至少300 dpi)。
他们要求的另一种格式是EPS。这是封装的postscript。因为它是单页文件PS或postscript,所以相同。而且,PDF也类似。这些都是矢量格式,基本上是相同的矢量格式(它们也可以包含栅格格式图像,但让我们忽略它)。
矢量格式文件保存有关图像绘制方式的信息,但不保存有关每个像素的信息。如果从图像底部有一个长3英寸的3英寸x轴,则矢量文件知道此描述。该图的每个功能都在文件中描述。因此,对于简单的绘图,它比给定图像质量的任何光栅表示都要紧凑得多。此外,它在不损失质量的情况下缩放尺寸。你只需要它以6“x 6”而不是5“x 5”绘制图像,它也会缩放每个指令以绘制图像的组成部分。因此,即使PDF或EPS文件更紧凑,它也会以最高质量打印。
发送PDF或PS文件,不要担心解决方案。
答案 2 :(得分:11)
当您增加分辨率(res
)时,绘图的有效大小会减小,因此边距错误会跳出。尝试使用更大width
和height
来制作更大的图片(理论上,为了制作相同虚拟大小的图,它应该是new_(width|height)=res/72*old_(width|height)
。
不过,正如罗莫诺夫所说,使用ImageMagick是一个更好的主意;你不会失去品质。
答案 3 :(得分:1)
我建议您使用devEval
库中的R.devices
。
我自己有这个问题并且由于这个问题解决了它:
options("devEval/args/path"=file.path(Folder_of_Output))
devEval("tiff", name="Name_output", width=120, height=800, {
barplot(data, main="imagetitle");
legend("top", legend =c("text of legend"))
})
对我来说,它就像一个魅力,文件直接保存没有问题。