Seite 1 von 2

Plotten von Windrichtungs-Daten

Verfasst: Mi Aug 09, 2017 4:25 pm
von Ilonia
Hallo zusammen,

ich habe folgende Problem beim Plotten meiner Windrichtungsdaten. Die Einheit hierbei ist in Grad, wobei 0 und 360 Grad ein Wind aus Nord darstellt, 90 Grad aus Osten, 180 aus Süd etc.
Ich möchte ein Tagesgangplot (00 Uhr bis 23:53 Uhr) von Windrichtungsdaten plotten. Das ganze ist auch nicht das Problem (Ausschnitt im Anhang).

Allerdings sieht man um ca. 7 Uhr, dass der Wind von Nord auf Ost/Südost dreht. Dabei entsteht ein großer Sprung im Linienplot, was auch kein Fehler ist, dieser allerdings nicht schön ist und auch etwas verwirrend, da die Richtung immer noch die gleiche ist.

Mein Ziel hierbei ist es die Daten zu "gruppieren", also alles von von 345 bis 15 Grad ist, eine Richtung hat (in diesem Fall "Nord") und dann immer in 30 Grad schritten weiter gehend um diesen großen Sprung raus zubekommen. Die y-Achse soll dann so dargestellt sein, dass am unteren und oberen Ende jeweils "Nord" ist und in der Mitte "Süd" als Richtung angegeben ist.


Mein jetziger Code für die Graphik ist:

Code: Alles auswählen

Wind<- read.table("Wind_Test_Datei.txt",sep=",", header=T,stringsAsFactors = F,na.strings="NA")
Wind$V1 <- as.POSIXct(Wind$V1,format = "%H:%M:%S",tz="GMT")

Wind_Plot<-ggplot(data=Wind, aes(x=V1 ,y=wd,group=1)) +
		geom_line(colour="blue") +
		scale_x_datetime(breaks=date_breaks("1 hour"), labels=date_format("%H:%M"))+
		 xlab("") + ylab(expression("Winddirection [Degree]")) +theme(plot.margin=unit(c(1,1,1,1),"cm")) +
		coord_cartesian(ylim = c(0, 360))+ scale_y_continuous(breaks=c(0,50,100,150,200,250,300,350))
Wind_Plot
Teile des Datensatzes sind auch angefügt.

Über Hilfe wäre ich euch sehr dankbar!

Liebe Grüße

Re: Plotten von Windrichtungs-Daten

Verfasst: Mi Aug 09, 2017 8:26 pm
von jogo
Hallo Ilonia,

willkommen im Forum!
Vielleicht sind Punkte (ggf. etwas dickere) besser geeignet - zumindest hast Du dann nicht so eine störende durchgezogene Verbindungslinie.

Gruß, Jörg

Re: Plotten von Windrichtungs-Daten

Verfasst: Mi Aug 09, 2017 11:49 pm
von EDi
Hmm, ein rundes Koordinatensystem (=Windrichtung), Punkte und einen farbverlauf für die Tageszeit?

Re: Plotten von Windrichtungs-Daten

Verfasst: Do Aug 10, 2017 2:57 pm
von jogo
Da ich die Idee, mit dem runden Diagramm (polare Koordinaten) auch recht nett fand, habe ich folgendes probiert:

Code: Alles auswählen

Wind <- read.table("http://forum.r-statistik.de/download/file.php?id=109", sep=",", header=TRUE, stringsAsFactors = FALSE, na.strings="NA")
Wind$V1 <- as.POSIXct(Wind$V1, format = "%H:%M:%S", tz="GMT")
library("ggplot2")
ggplot(Wind, aes(x=wd, y=V1)) + coord_polar() + geom_point()
Gruß, Jörg

Re: Plotten von Windrichtungs-Daten

Verfasst: Fr Aug 11, 2017 4:02 pm
von dvf
Die Sache etwas bunter:

Code: Alles auswählen

 ggplot(Wind, aes(x=wd, y=V1, color=V1)) + coord_polar() + geom_point()
Gruß, dvf

Re: Plotten von Windrichtungs-Daten

Verfasst: Mo Aug 14, 2017 10:28 am
von Ilonia
Hallo zusammen,

vielen Dank für eure Vorschläge!

Die runde Möglichkeit finde ich wirklich gelungen, und wäre nie darauf gekommen!
Vielen herzlichen Dank dafür!

LG

Re: Plotten von Windrichtungs-Daten

Verfasst: Di Aug 15, 2017 1:18 pm
von jogo
Mich hat das noch gewurmt, dass für den Anfangszeitpunkt die Richtung kaum feststellbar ist (im Mittelpunkt ist der Winkel nicht erkennbar). Es gibt ja noch einige Parameter, an denen man rumdrehen kann. Das Ergebnis für mich sieht jetzt so aus:

Code: Alles auswählen

Wind <- read.table("http://forum.r-statistik.de/download/file.php?id=109", sep=",", header=TRUE, stringsAsFactors = FALSE, na.strings="NA")
Wind$V1 <- as.POSIXct(Wind$V1, format = "%H:%M:%S", tz="GMT")
library("ggplot2")
ggplot(Wind, aes(x=wd, y=V1)) + coord_polar() + geom_point() 
ggplot(Wind, aes(x=wd, y=V1, color=ws)) + coord_polar() + geom_point() +
  ylim(min(Wind$V1 - 3600), max(Wind$V1)) +
  scale_x_continuous(breaks=c(0,90,180,360))
Dabei ist jetzt auch noch die Spalte $ws abgebildet.

Gruß, Jörg

Re: Plotten von Windrichtungs-Daten

Verfasst: Mi Aug 16, 2017 4:26 pm
von Ilonia
Also ich habe euren Vorschlag noch etwas verfeinert, und so sieht mein Ergebnis jetzt aus!
Nochmals vielen Dank!

Code: Alles auswählen

Wind <- read.table("http://forum.r-statistik.de/download/file.php?id=109", sep=",", header=TRUE, stringsAsFactors = FALSE, na.strings="NA")
Wind$V1 <- as.POSIXct(Wind$V1, format = "%H:%M:%S", tz="GMT")
library("ggplot2")
ggplot(Wind, aes(x=wd, y=V1, color=ws)) + 
		coord_polar(start = 0) + geom_point()+
		scale_x_continuous(limits=c(0,360),breaks=c(0,45,90,135,180,225,270,315),
                     labels = c("N","NE", "E", "SE", "S", "SW", "W","NW"))+
		scale_y_datetime(breaks=date_breaks("1 hour"), labels=date_format("%H:%M"))+
		ylab("") + xlab("")+
		labs(color="Windspeed [m/s]")
Liebe Grüße

Re: Plotten von Windrichtungs-Daten

Verfasst: Di Okt 10, 2017 2:31 pm
von Ilonia
Hallo zusammen,

ich habe eine Frage, die etwas mit dem Output des Beispiels hier zu tun hat (so muss ich kein neuen Thread öffnen ;) )

Ich möchte die Graphik mit dem Code von oben als SVG-Datei speichern und habe das folgendermaßen gemacht:

Code: Alles auswählen

ggsave("Wind",device=svg)
Wenn ich die Datei nun mit Inkscape öffne ist mir sofort aufgefallen, dass beispielsweise die Legende (also der blaue Farbverlauf) einen dunkleren Streifen in der Mitte hat.

Meine Frage hierzu: Gibt es auch noch andere Möglichkeiten eine ggplot-Graphik als SVG zu speichern?

Mit den Lösungsvorschlägen von Dr.Google bin ich nicht weiter gekommen, da ich sowohl "svglite" als auch "RSvgDevice" als Paket nicht installieren kann...

Vielen Dank schonmal für eure Hilfe und Vorschläge!

Liebe Grüße
Isabel

Re: Plotten von Windrichtungs-Daten

Verfasst: Di Okt 10, 2017 5:32 pm
von EDi
Ilonia hat geschrieben: Di Okt 10, 2017 2:31 pm Mit den Lösungsvorschlägen von Dr.Google bin ich nicht weiter gekommen, da ich sowohl "svglite" als auch "RSvgDevice" als Paket nicht installieren kann...
Wieso das nicht?
svglite wäre jetzt mein erster Tipp gewesen... :(