2014-02-25 6 views
6

Я довольно отчаянно пытаюсь настроить два уровня уровня одной растровой таблицы каждый на одном участке. Похоже, что rasterVis::levelplot не принимает параметр par(mfrow = c(...)) для разделения панели. Пример использования двух rasterstacks, которые должны быть расположены бок о бок в новом окне участка:Множество (rasterVis) levelplots

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, поэтому я получаю только разочарование.

Я очень ценю вашу помощь, заранее спасибо

Andi

+3

'print (p1, split = c (1,1,1,2), more = TRUE); print (p2, split = c (1,2,1,2)) ' – baptiste

+0

@baptiste - Nifty! Я никогда не замечал, что 'split =' аргумент в '? Print.trellis'. –

+3

В FAQ: [Как напечатать несколько Растеров с разными легендами на той же странице] (http://oscarperpinan.github.io/rastervis/FAQ.html#sec-8) –

ответ

8

Для сетки -На графики, в том числе производства решетки (которая лежит в основе rasterVis "Построение графиков функций) сеткаExtra функция grid.arrange() делает +/- то же, что и par(mfcol=). Для базы R графика.

library(gridExtra) 
p1 <- levelplot(r1) 
p2 <- levelplot(r2) 
grid.arrange(p1, p2, ncol=2) 

enter image description here

Редактировать: Альтернативного решетка -специфическое решения использует split= аргумента print.trellis(), метод построения для решетчатых участков (Н.Т. Батист & Оскар 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)) 
+0

при использовании levelplot с приведенными выше методами (grid.arrange или print) визуализируйте растровый стек (2 растров) рядом с одним растром, один растровый будет в два раза больше. Как сделать их одинаковыми? – Sam