2016-06-19 7 views
2

Ich versuche, fünf Raster in einer einzigen Figur zu plotten. Ich kann dies leicht mit par() tun, aber ich möchte, dass mein Multiplot symmetrisch mit dem oberen Raster zentriert ist. eine Dummy-Plot Erstellen funktioniert:Plot mehrere Raster in r mit Layout-Funktion

m <- rbind(c(1, 1), c(2, 3), c(4,5)) 
print(m) 

    [,1] [,2] 
[1,] 1 1 
[2,] 2 3 
[3,] 4 5 

layout(m) 
layout.show(5) 

Dummy plot

Aber es ist alles schief geht, wenn ich versuche und meine Rastern verwenden:

m <- rbind(c(1, 1), c(2, 3), c(4,5)) 
layout(m) 

plot(rast1) 
plot(shape, add=TRUE) 
plot(rast2) 
plot(shape, add=TRUE) 
plot(rast3) 
plot(shape, add=TRUE) 
plot(rast4) 
plot(shape, add=TRUE) 
plot(rast5) 
plot(shape, add=TRUE) 

Raster plot

Die "Form" hinzugefügt werden In jedem Grundstück gibt es nur einen Überblick über die Schutzgebiete, an denen ich arbeite. Die unteren drei sehen aus, als wären sie in der richtigen Position, aber eindeutig nicht die besten. Unter der Annahme, dass die unteren 3 in der richtigen Position sind, möchte ich auch jeden viel größer machen.

Ich habe versucht, die Grundstücksgrenzen zu ändern, aber das machte die Dinge nur noch schlimmer. Ich habe auch versucht, mit image() anstelle von plot() wie vorgeschlagen here, aber ich habe nur Fehlermeldungen.

Als reproduzierbaren Beispiel können Sie verwenden:

library(raster) 
r <- raster(ncols=5, nrows=5, xmn=1, xmx=5, ymn=1, ymx=5) 
rast1 <- setValues(r, rnorm(25)) 
rast2 <- setValues(r, rnorm(25)) 
rast3 <- setValues(r, rnorm(25)) 
rast4 <- setValues(r, rnorm(25)) 
rast5 <- setValues(r, rnorm(25)) 

m <- rbind(c(1, 1), c(2, 3), c(4,5)) 
layout(m) 

plot(rast1) 
plot(rast2) 
plot(rast3) 
plot(rast4) 
plot(rast5) 

, die Ihnen eine sehr ähnlich aussehende Chaos bekommt:

enter image description here

Kann mir jemand helfen a) fixieren die Position jedes Raster und b) jedes Raster größer machen? Jede Hilfe würde sehr geschätzt werden, ich bin am Rande des Aufgebens und kleben die einzelnen Raster einfach von Hand zusammen.

Antwort

3

Ich denke, das funktioniert, wenn Sie image verwenden, anstatt plot

library(raster) 
r <- raster(ncols=5, nrows=5, xmn=1, xmx=5, ymn=1, ymx=5) 
r1 <- r2 <- r3 <- r4 <- r5 <- setValues(r, rnorm(ncell(r))) 

m <- rbind(c(1, 1), c(2, 3), c(4,5)) 
layout(m) 

image(r1) 
image(r2) 
image(r3) 
image(r4) 
image(r5) 
+0

Das mit reproduzierbaren Beispiel funktioniert aber nicht mit meinem maßgeschneiderten Rastern: Grundstück (fires.3km, Achsen = FALSE, box = FALSCH, col = RHGL (100), par (mar = c (2, 2, 2, 2)), main = "Anzahl der Brände") Irgendeine Idee, wie ich dies mit der image() -Funktion aufnehmen kann? Ich komme auch mit dem oberen Raster schrecklich verzerrt. – James