以高分辨率将绘图保存到tiff以供发布(R格式)

以高分辨率将绘图保存到tiff以供发布(R格式),r,tiff,R,Tiff,我们将向其发送一篇文章的杂志要求提供以下内容: 为了确保您的数字的最佳复制质量,我们希望使用高分辨率文件。所有数字最好采用TIFF或EPS格式。。。并应具有以下分辨率: 图形:800-1200 DPI 照片:400-800 DPI 颜色(仅CMYK):300-400 DPI(DPI=每英寸点数) 因为我正在发送一个图形,所以我尝试使用tiff保存它 以下是我正在使用的代码: tiff(filename = "c:\\aaa.tiff", res = 800, pointsize =

我们将向其发送一篇文章的杂志要求提供以下内容:

为了确保您的数字的最佳复制质量,我们希望使用高分辨率文件。所有数字最好采用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()中出错:图形边距太大


有什么建议吗?

当您提高分辨率(
res
)时,绘图的有效大小会减小,因此边距误差会跳出来。试着用更大的
宽度
高度
(理论上,要制作一个虚拟大小相同的绘图,它应该是
新的(宽度|高度)=res/72*旧的(宽度|高度)

不过,正如罗姆诺夫所建议的,使用ImageMagick是一个更好的主意;您不会失去质量。

简短回答:

这是一个庞大的文件,因为分辨率越高的光栅文件(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也是类似的。这些都是矢量格式,本质上是相同的矢量格式(它们也可以包含光栅格式的图像,但我们忽略它)

矢量格式文件保存有关如何绘制图像的信息,但不保存有关每个像素的信息“从图像的底部,矢量文件知道这个描述。图形的每个特征都在文件中描述。因此,对于简单的图形,在给定的图像质量下,它比任何光栅表示都要紧凑得多。此外,它可以在不损失质量的情况下缩放大小。您只需要求它在6“x 6”而不是5“x 5”,并且它还可以放大用于绘制图像组件的每个说明。因此,即使PDF或EPS文件更紧凑,它也将以最高质量打印


发送PDF或PS文件,不要担心分辨率。

您应该做的一件事是使用压缩参数

例如:

tiff("outfile.tif", compression = "lzw")

是一种无损压缩格式,因此您不会丢失任何数据,但肯定会减少文件大小。

我建议您使用
R.devices
库中的
devEval

我自己也遇到了这个问题,并通过以下方式解决了这个问题:

  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"))
  })

对我来说,它就像一个符咒,文件直接保存,没有任何问题。

导出为pdf/ps,然后使用ImageMagick或其他工具转换为tiff如何?我可以-但我可能会同时丢失数据。此外,我还缺少一些基本的东西-我想学习它(你呢?:)将其导出到SVG,通过这样做,您不会得到任何质量损失,因为它是矢量化的。您可以使用
RSvgDevice
Cairo
导出SVG。您还没有解释为什么您不能使用eps——这也是一种工作正常的矢量格式。这有什么问题吗?大家好,我只是想告诉您,我最终在plo中使用了eps格式我发送了ts。感谢大家在这方面的帮助(特别是没有回答我的问题-但我需要什么)。想要EPS的出版商也会接受PDF是不真实的;转换有时可能会很棘手。我已经多次看到同样的请求,从未失败过。然而,EPS()会很好用。对我来说,它曾经失败过;所以我想这取决于技术编辑的偏好。给未来的读者一个提示:改变分辨率并不会像答案的第一段那样实际增加像素;默认情况下,宽度和高度设置为每英寸480像素。OP的问题是分辨率被改变了0ut更改大小;在800dpi时,大小为1.67平方英寸。OP更改字体以适合,但不适合绘图的其他元素(如点和线)因此,它们似乎比应该的要大得多。要使用tiff格式,需要更改宽度和高度;有关详细信息,请参阅mbq的答案。我在说明中选择了固定大小的图像,这是关于光栅图像的一般工作方式,而不是命令本身。因此,如果图像