Ich möchte eine Legende mit zwei Achsen zeichnen. Insbesondere habe ich zwei klassifizierte räumliche Objekte kombiniert, wobei das erste die Intensität eines Ereignisses und das zweite die Wahrscheinlichkeit des Ereignisses an diesem Ort zeigt. Ich möchte eine Legende erstellen, die zeigt, wo die Pixel des kombinierten Rasters in jede Kategorie fallen. Die Legende, die ich erstellen möchte, sieht ungefähr so aus: Legende mit zwei Achsen .
Die normale Legende der klassifizierten Daten sieht folgendermaßen aus: Originallegende
Hier ist ein reproduzierbares Beispiel für die Art der Daten, die ich verwende:
library(raster)
library(rasterVis)
# setseed
set.seed(999)
# create raster (example of what would be the outcome of combining intensity and probability rasters)
plot.me<- raster(xmn=-110, xmx=-90, ymn=40, ymx=60, ncols=40, nrows=40)
val <- c(100:104, 200:204, 300:304, 400:404)
plot.me<- setValues(plot.me, sample(val,ncell(plot.me),replace=T))
###### Plotting
plot.me <- ratify(plot.me)
levelplot(plot.me,att="ID" ,
col.regions=c("#beffff","#73dfff","#d0ff73","#55ff00",
"#73b2ff","#0070ff","#70a800","#267300",
"#f5f57a","#ffff00","#e8beff","#df73ff",
"#f5ca7a","#ffaa00","#e600a9","#a80084"))
Zeichnen Sie die Ausgabe von oben
Der einfachste Weg wäre, den Plot zu erstellen und die Legende später in einem Grafikeditor hinzuzufügen ... aber ich bin sicher, dass es einen Weg geben muss, dies in R selbst zu tun! Ich plane derzeit mit dem rasterVis-Paket, aber wenn es Antworten in ggplot oder base R gibt, sind diese gleichermaßen willkommen.
Wenn es sinnvoller wäre, ein reproduzierbares Beispiel für die Zwischenschritte (dh mit den Intensitäts- / Wahrscheinlichkeitsrastern) zu haben, lassen Sie es mich wissen und ich kann diese erstellen.
rasterVis
ich dieses Bild produziert . Wenn Sie danach suchen, probieren Sie den hier verfügbaren Code aus (Abschnitt "Bivariate Legende).
Reduce
und reduziert +.trellis
.