Присоединяйтесь к нескольким графикам уровня R Rastervis

У меня есть два набора растров, каждый с общей легендой, которые я хочу разместить на одном графике с промежутком между наборами. Я хочу, чтобы растровые изображения были одинакового размера в каждом блоке и между блоками. Есть ли простой способ сделать это с помощью Rastervis::levelplot. Я считаю, что лучше всего добавить легенду к grid.arrange объекту, как в этом MWE.

library(raster)
library(rasterVis)
s <- stack(
raster( matrix(runif(9),3,3)),
raster( matrix(runif(9),3,3)) )

gridExtra::grid.arrange(
levelplot(s, colorkey=FALSE, at=seq(0,1,length.out=11)),
levelplot(s, at=seq(0,1,length.out=11)),
ncol=2)

Еще более простым решением было бы сделать это из одного вызова leveplot.


person Jordan    schedule 13.04.2018    source источник


Ответы (1)


Я думаю, вы хотите сделать что-то вроде этого:

levObj <- levelplot(s)
comb_levObj <- c(levObj, levObj, layout = c(4, 1), merge.legends = F)
print(comb_levObj)

введите здесь описание изображения

Но более простым решением было бы:

s <- stack(s,s)
levelplot(s)

введите здесь описание изображения

person DJack    schedule 13.04.2018
comment
Эти решения не сохраняют расстояние между стеками, которое я хочу. - person Jordan; 13.04.2018
comment
Я не знаю, как это сделать. Для визуального разделения стеков рекомендуется использовать levelplot(s, layout = c(2,2)) - person DJack; 13.04.2018