gridExtra::read.tiff 和缺少分辨率信息
gridExtra::read.tiff and missing resolution info
为了 assemble 多面板数字我正在编写一个函数,它使用 gtable 来很好地自动排列它们。我正在实现将 *.tif
图形添加为面板的功能,并且 运行 遇到读取文件后确定分辨率的问题。
# Plot something
require(ggplot2)
p <- ggplot(mtcars, aes(wt, mpg))
p <- p + geom_point()
# Save as tif
tmpFile <- tempfile(fileext = ".tiff")
ggsave(
filename = tmpFile,
plot = p,
width = 65,
height = 60,
units = "mm",
dpi = 300)
# Re-read
require(gridExtra)
require(pixmap)
parsedTif <- read.tiff(tmpFile)
发出了一个警告,这是相关的,但我无法放置:
Warning message:
In rep(cellres, length = 2) : 'x' is NULL so the result will be NULL
当我这样做时,parsedTif@size
给出了以像素为单位的尺寸,但 parsedTif@cellres
等于 c(1, 1)
。在这个构造的案例中,我知道图像应该具有的实际测量值,因此可以像这样重建分辨率,
dim <- parsedTif@size
size <- unit(x = dim/11.8, units = "mm")
但这并不为人所知。我如何从 gridExtra::read.tiff
解析的对象中获得分辨率,或者这只是 ggsave
产生的问题?
经过更多谷歌搜索后,观察到的行为似乎是 pixmap
包中的错误(参见 here 另一个实例)。切换到 tiff::readTIFF
可解决问题 - 正确报告分辨率。 rtiff::readTiff
概括了 gridExtra::read.tiff
的上述行为,因此也无法使用。
为了 assemble 多面板数字我正在编写一个函数,它使用 gtable 来很好地自动排列它们。我正在实现将 *.tif
图形添加为面板的功能,并且 运行 遇到读取文件后确定分辨率的问题。
# Plot something
require(ggplot2)
p <- ggplot(mtcars, aes(wt, mpg))
p <- p + geom_point()
# Save as tif
tmpFile <- tempfile(fileext = ".tiff")
ggsave(
filename = tmpFile,
plot = p,
width = 65,
height = 60,
units = "mm",
dpi = 300)
# Re-read
require(gridExtra)
require(pixmap)
parsedTif <- read.tiff(tmpFile)
发出了一个警告,这是相关的,但我无法放置:
Warning message:
In rep(cellres, length = 2) : 'x' is NULL so the result will be NULL
当我这样做时,parsedTif@size
给出了以像素为单位的尺寸,但 parsedTif@cellres
等于 c(1, 1)
。在这个构造的案例中,我知道图像应该具有的实际测量值,因此可以像这样重建分辨率,
dim <- parsedTif@size
size <- unit(x = dim/11.8, units = "mm")
但这并不为人所知。我如何从 gridExtra::read.tiff
解析的对象中获得分辨率,或者这只是 ggsave
产生的问题?
经过更多谷歌搜索后,观察到的行为似乎是 pixmap
包中的错误(参见 here 另一个实例)。切换到 tiff::readTIFF
可解决问题 - 正确报告分辨率。 rtiff::readTiff
概括了 gridExtra::read.tiff
的上述行为,因此也无法使用。