Ich versuche, einige globale Karten (Raster-Dateien) zu plotten und ich habe einige Probleme beim Einrichten einer guten Farbskala für meine Daten. Was ich tun möchte, ist, meine Daten mit einer abweichenden Palette zu plotten (zB cm.colors
), und ich möchte die Farbe "weiß" eines solchen Maßstabs mit dem Wert Null zentrieren, aber ohne symmetrische Werte in der Skala (dh der gleiche Wert ist sowohl negativ als auch positiv, dh limits=c(-1,1)
). Außerdem möchte ich alle Werte über und/oder unter einem bestimmten Wert alle mit der gleichen Farbe plotten. Wenn wir annehmen, dass meine Karte einen Bereich von -100 bis 150 hat, möchte ich meine Karte mit einer divergierenden Palette mit einer "weißen" Farbe entsprechend dem Wert 0 und mit allen Werten darstellen z.B unter -20 und über 50 aufgetragen mit der gleichen Farbe, d.h. jeweils mit den negativen und positiven Extremen der Farbpalette.ggplot2: Umgang mit extremen Werten durch Einstellung einer kontinuierlichen Farbskala
Hier ein Beispiel für den Code, den ich für den Moment bin mit:
ggplot(df, aes(y=Latitude, x=Longitude)) +
geom_raster(aes(fill=MAP)) +
coord_equal()+
theme_gray() +
theme(panel.background = element_rect(fill = 'skyblue2', colour = 'black'),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
legend.position = "right",
legend.key = element_blank()) +
scale_fill_gradientn("MAP", limits=c(-0.5,1), colours=cm.colors(20))
Große, voll Antwort Brian konkretisiert. Danke dafür. Ich brauche es jetzt nicht, aber ich konnte sehen, dass die Transformation äußerst praktisch ist. – SeldomSeenSlim