nicht definierten Bereich in weiß plotten

Wie erstelle ich Grafiken, was ist zu beachten?

Moderatoren: EDi, jogo

Antworten
jessi
Beiträge: 100
Registriert: Mo Jul 10, 2017 9:23 am

nicht definierten Bereich in weiß plotten

Beitrag von jessi »

Hallo liebe Forum-Menschen,

ich steh mal wieder vor einem Problem. Ich habe Wassertemperaturdaten vorliegen und möchte diese jetzt graphisch darstellen. Mein data.frame sieht folgenderweise aus

Code: Alles auswählen

str(d_h2o)
'data.frame':   12531058 obs. of  5 variables:
$ date: chr "20150525" "20150525" "20150525" ...
$ phi  : num  18.9 18.9 18.9 18.9 18.9 ...
$ lambda    : num  10.750 10.760 10.770 10.780 10.780 ...
$ T_h2o : num 21.1 22.0 21.4 21.9 22.5 ...
$ T_h2o_10m: num 19.4 19.0 18.3 17.9 19.1 ...
Wobei date das Datum ist, phi und lambda die Koordinaten und T_h2o die Wassertemperatur. Als nächstes habe ich über die Koordinaten gemittelt.

Code: Alles auswählen

mittel_t <- aggregate(T_h2o ~ lambda + phi, d_h2o, FUN = mean)

str(mittel_t)
'data.frame':   54326 obs. of  3 variables:
 $ lambda  : num 10.750 10.760 10.770 10.780 10.780 ...
 $ phi: num  18.9 18.9 18.9 18.9 18.9 ...
 $ T_h2o   : num  14 13.5 16.5 10.5 10.5 20 10.5 10 11 15 ...
 
 ##Matrix erstellen 
 M_Th2o <- xtabs(T_h2o ~ lambda + phi, data = mittel_t)
 
 ### plotten 
xax <- as.numeric(dimnames(M_Th2o)$lambda)
yax <- as.numeric(dimnames(M_Th2o)$phi)
image.plot(xax, yax, M_Th2o, col=topo.colors(64))


Soweit so gut. Jetzt liegen die Werte allerdings nur an den Koordinaten vor, wo auch Meere/Ozeane sind. wenn ich mir jetzt einen Ausschnitt über Land definiere, bekomme ich folgendes Ergebnis:

Code: Alles auswählen

d_land <- subset(d_h2o, lambda >= 25.000 & lambda <= 28.000 & phi >= 40 & phi <= 48)

str(d_land)
'data.frame':   0 obs. of  5 variables:
$ date: chr 
$ phi  : num  
$ lambda    : num   
$ T_h2o : num  
$ T_h2o_10m: num  
Diese Landbereiche werden aber in der Graphik ebenfalls farblich angezeigt und zwar mit der Farbe T_h2o = 0.

Hier meine Frage: gibt es eine Möglichkeit, alle "Land"-Bereiche die keine Werte aufweisen in der Graphik weiß erscheinen zu lassen, ohne das der Farbe ein Wert zugeordnet wird?
Der Wert 0 kommt in den Daten auch vor und zwar dann, wenn eine Eisoberfläche vorhanden ist, also kann ich nicht alle Nullwerte gleich verwerfen.
Vielen Dank für euren Tipps.

Grüße
Jessi
Benutzeravatar
EDi
Beiträge: 1599
Registriert: Sa Okt 08, 2016 3:39 pm

Re: nicht definierten Bereich in weiß plotten

Beitrag von EDi »

'data.frame': 0 obs.
Welche? Hier sind keine drin.

Ich würde einen (spatial) join mit den Land machen, um eine Indikatorvariable zu erstellen, die dir sagt ob der Punkt auf Land liegt (und dann kannst du die einfach weglassen oder anders einfärben.
Bitte immer ein reproduzierbares Minimalbeispiel angeben. Meinungen gehören mir und geben nicht die meines Brötchengebers wieder.

Dieser Beitrag ist lizensiert unter einer CC BY 4.0 Lizenz
Bild.
Antworten