Ist es möglich, den Schlüssel für z. B. eine sp.points
-Ebene zu dem von levelplot
generierten Farbschlüssel hinzuzufügen?Hinzufügen von sp.points-Schlüssel zu levelplot colorkey
Nehmen Sie das folgende Beispiel:
library(rasterVis)
library(latticeExtra)
library(sp)
r <- as.factor(raster(matrix(rbinom(100, 1, 0.5), 10)))
levels(r)[[1]] <- data.frame(ID=0:1, z=c('a', 'b'))
p <- SpatialPoints(matrix(runif(20), 10))
levelplot(r, margin=list(draw=FALSE), scales=list(draw=FALSE),
col.regions=c('white', 'gray90')) +
latticeExtra::layer(sp.points(p, pch=20, col=1))
Ich möchte eine Tasteneingabe für die Punkte an, unter dem bestehenden colorkey.
A kludgy Lösung ist, einen Schlüssel zum levelplot
Anruf hinzuzufügen, wie folgt, die x
und y
Werte eingestellt, bis sie in der gewünschten Position ist, aber (1) Finden der richtigen x
und y
Werte ist ein Schmerz, erfordert Interaktion, (2) die rechte Auffüllung wird nicht angepasst, um den Schlüssel aufzunehmen, und (3) die Schriftgröße wird nicht automatisch skaliert, um mit der Farbe übereinzustimmen.
k <- list(x = 1.02, y = 0.4, corner = c(0, 0), points=list(pch=20, col=1),
text=list('foo', cex=0.9))
levelplot(r, margin=list(draw=FALSE), scales=list(draw=FALSE),
col.regions=c('white', 'gray90'), key=k) +
latticeExtra::layer(sp.points(p, pch=20, col=1))
Angenommen, ich mit lattice
Grafiken haften müssen, was ist der beste Weg, um die Probleme zu überwinden, die ich oben aufgeführt?
Dank Oscar. Ist es möglich, die 'p2'-Legende in Übereinstimmung mit dem levelplot-Schlüssel (d. H. Über oder unter, anstatt neben) zu haben? – jbaums
Sie sollten das Argument 'vertical' in' mergedTrellisLegendGrob' versuchen. Der Standardwert ist 'FALSE' (wie in diesem Beispiel). Beim Erforschen des Codes habe ich herausgefunden, dass mit 'vertical = TRUE' diese Funktion' packGrob' verwendet, um die erste Legende oben und die zweite unten zu platzieren. Vielleicht ist das nicht genau das, was du brauchst. Stattdessen können Sie die letzten Zeilen dieser Funktion mit den 'row'- und' col'-Argumenten von 'packGrob' wiederverwenden. –