Я столкнулся с проблемой, связанной с загрузкой визуализации в формате .png (я также пробовал с форматом .jpeg).
У меня есть функция, которая содержит мой код. Внутри есть кусок кода, который создает тепловую карту с пакетом ComplexHeatmap и специальной функцией Heatmap (). Я хотел бы сохранить визуализацию изображения.
Вот проблема, когда я выполняю все фрагменты кода один за другим, не используя свою функцию, это работает хорошо. Тем не менее, когда я выполняю свою функцию, собираю с этими кусками кода, она работает хорошо, но сохраненная визуализация отображает белый экран.
Может кто-нибудь помочь мне с этим поведением?
Заранее спасибо за совет!
if( ! "ComplexHeatmap" %in% .packages(all.available=T) ){ install_github("jokergoo/ComplexHeatmap") }
library(ComplexHeatmap)
set.seed(123)
nr1 = 4; nr2 = 8; nr3 = 6; nr = nr1 + nr2 + nr3
nc1 = 6; nc2 = 8; nc3 = 10; nc = nc1 + nc2 + nc3
mat = cbind(rbind(matrix(rnorm(nr1*nc1, mean = 1, sd = 0.5), nr = nr1),
matrix(rnorm(nr2*nc1, mean = 0, sd = 0.5), nr = nr2),
matrix(rnorm(nr3*nc1, mean = 0, sd = 0.5), nr = nr3)),
rbind(matrix(rnorm(nr1*nc2, mean = 0, sd = 0.5), nr = nr1),
matrix(rnorm(nr2*nc2, mean = 1, sd = 0.5), nr = nr2),
matrix(rnorm(nr3*nc2, mean = 0, sd = 0.5), nr = nr3)),
rbind(matrix(rnorm(nr1*nc3, mean = 0.5, sd = 0.5), nr = nr1),
matrix(rnorm(nr2*nc3, mean = 0.5, sd = 0.5), nr = nr2),
matrix(rnorm(nr3*nc3, mean = 1, sd = 0.5), nr = nr3))
)
mat = mat[sample(nr, nr), sample(nc, nc)] # random shuffle rows and columns
rownames(mat) = paste0("row", seq_len(nr))
colnames(mat) = paste0("column", seq_len(nc))
myFunction<-function(data){
png( file=enc2native("picture.png"),width=650, height=800)
Heatmap(data)
dev.off()
}
myFunction(mat)