2015-02-16 2 views
0

Чтобы собрать многостраничные фигуры, я пишу функцию, которая использует gtable, чтобы красиво и автоматически упорядочить их. Я реализую функциональность, чтобы добавить графику *.tif в виде панелей, и я столкнулся с проблемами определения разрешения после прочтения файла.gridExtra :: read.tiff и отсутствует информация о разрешении

# 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 

Когда я делаю это, [email protected] дает мне размеры в пикселях, но [email protected] приравнивает к c(1, 1). В этом случае сконструированного я знаю фактические измерения, что изображение должно иметь и таким образом реконструировать разрешение, как так,

dim <- [email protected] 
size <- unit(x = dim/11.8, units = "mm") 

но это вообще не известно. Как получить разрешение от анализируемого объекта gridExtra::read.tiff или это просто проблема с ggsave произведенными tiffs?

ответ

0

После получения дополнительной информации о том, что наблюдаемое поведение является ошибкой в ​​пакете pixmap (см., Например, here для другого экземпляра). Переключение на tiff::readTIFF устраняет проблему - разрешение сообщается правильно. rtiff::readTiff повторяет описанное выше поведение от gridExtra::read.tiff и, следовательно, также непригодно.

Смежные вопросы