Несколько (rasterVis) уровней
Я очень отчаянно пытаюсь настроить два уровня одного растрового стека каждый на одном участке. Это похоже на rasterVis::levelplot
не принимает par(mfrow = c(...))
опция для разделения панели. Пример использования двух растровых стеков, которые должны быть расположены рядом в новом окне графика:
f <- system.file("external/test.grd", package="raster")
r1 <- stack(raster(f),log(raster(f)))
r2 <- stack(raster(f)-500,raster(f)+500)
par(mfrow=c(2,2))
levelplot(r1)
levelplot(r2)
Вот, levelplot(r1)
строится в полномасштабном окне, в то время как levelplot(r2)
к сожалению закрашивает levelplot(r1)
,
Я пытался поиграть, завершая призыв к levelplot
с print
функция, которая принимает split
так же как newpage = false
опции. К сожалению, я не понимаю, как использовать split
правильно, так что я в конечном итоге ничего, кроме разочарования.
Буду очень признателен за вашу помощь, заранее спасибо
И я
1 ответ
Для графики на основе сетки, в том числе созданной с помощью решетки (которая лежит в основе функций построения растровых изображений), функция gridExtra grid.arrange()
+/- делает то же самое, что и par(mfcol=)
делает для базовой графики R.
library(gridExtra)
p1 <- levelplot(r1)
p2 <- levelplot(r2)
grid.arrange(p1, p2, ncol=2)
Редактировать: альтернативное решение для конкретной решетки использует split=
аргумент print.trellis()
, метод построения для решетчатых участков (ht baptiste & Oscar Perpiñán). split=
занимает вектор из четырех чисел. 3-й и 4-й элементы вектора задают количество столбцов и строк на дисплее, а его 1-й и 2-й элементы - положения столбцов и строк печатаемого объекта.
library(gridExtra)
p1 <- levelplot(r1)
p2 <- levelplot(r2)
print(p1, split=c(1,1,2,1), more=TRUE)
print(p2, split=c(2,1,2,1))