获取我正在查看的情节作为 300px TIFF 以供发布
Get the plot I am looking at as a 300px TIFF for publication
我正在尝试为我解决一个常见问题。一旦我有了一个图(通常使用 ggplot 制作),那么我需要输出高分辨率(300 或有时 600 dpi)TIFF 图像(在 OSX 中)。
我想我可以为此创建一个简单的函数,但它似乎没有按我预期的方式工作。
dev.copy2tiff <- function(filename,res=300,compression="lzw",...){
sizes <- dev.size(units="px")
cop <-dev.copy(tiff,filename=filename,width=sizes[[1]],height=sizes[[2]],units="px",res=res,compression=compression,pointsize = 3,...)
dev.flush()
dev.off()
return(cop)
}
为什么 TIFF 中的输出与屏幕上的不一样,我该怎么办?
编辑:
刚刚意识到:设备的大小当然应该指定为宽度和高度,而不是像素。本次修改代码:
dev.copy2tiff <- function(filename,res=300,compression="lzw",...){
sizes <- dev.size(units="cm")
cop <- dev.copy(tiff,filename=filename,width=(sizes[[1]]),height=(sizes[[2]]),units="cm",res=res,compression=compression,...)
dev.flush()
dev.off()
return(cop)
}
生成漂亮的 TIFF 图像,看起来像屏幕上显示的图像(在 RStudio 中),但分辨率为 72 DPI(根据 OS X 预览)。
怎么不是300dpi?
这个问题的解决方案似乎是通过 EPS 文件格式。
dev.copy2eps(file="filename.eps")
现在是我的朋友了。在预览 (OSX) 中打开后,它可以导出为 TIFF(或按原样提交)。
我正在尝试为我解决一个常见问题。一旦我有了一个图(通常使用 ggplot 制作),那么我需要输出高分辨率(300 或有时 600 dpi)TIFF 图像(在 OSX 中)。
我想我可以为此创建一个简单的函数,但它似乎没有按我预期的方式工作。
dev.copy2tiff <- function(filename,res=300,compression="lzw",...){
sizes <- dev.size(units="px")
cop <-dev.copy(tiff,filename=filename,width=sizes[[1]],height=sizes[[2]],units="px",res=res,compression=compression,pointsize = 3,...)
dev.flush()
dev.off()
return(cop)
}
为什么 TIFF 中的输出与屏幕上的不一样,我该怎么办?
编辑:
刚刚意识到:设备的大小当然应该指定为宽度和高度,而不是像素。本次修改代码:
dev.copy2tiff <- function(filename,res=300,compression="lzw",...){
sizes <- dev.size(units="cm")
cop <- dev.copy(tiff,filename=filename,width=(sizes[[1]]),height=(sizes[[2]]),units="cm",res=res,compression=compression,...)
dev.flush()
dev.off()
return(cop)
}
生成漂亮的 TIFF 图像,看起来像屏幕上显示的图像(在 RStudio 中),但分辨率为 72 DPI(根据 OS X 预览)。
怎么不是300dpi?
这个问题的解决方案似乎是通过 EPS 文件格式。
dev.copy2eps(file="filename.eps")
现在是我的朋友了。在预览 (OSX) 中打开后,它可以导出为 TIFF(或按原样提交)。