GGPlot: Vertikale Linie
Verfasst: Di Nov 05, 2019 10:27 am
Guten Morgen,
ich bin gerade dabei meine Daten über CO2 Futures grafisch darzustellen und möchte dies gerne mit ggplot machen, sieht einfach besser aus als mit der normalen plot Funktion. Meine Daten reichen vom 01.01.2005 bis zum 31.12.2012 und ich würde gerne einen vertikalen Strich beim 01.01.2008 durch mein Diagramm laufen lassen, da dort die zweite Handelsphase anfängt. Das einzige Problem bei ggplot stellt die Angabe des Datums dar, bei der normalen plot Funktion mache ich dies ja mit format. Bei der normalen Plot-Funktion weiß ich wie das geht: (Datum auf der X-Achse, Preise auf der y-Achse):
Zunächst muss ja das Datum richtig umgewandelt werden:
Dies zeit er dann in der Tabelle wie folgt an: 2005-01-01, 2005-01-02
Dann der normale Plot Code:
Dies ist der GGPlot Code:
Wie ihr sehen könnt, würde ich gerne jedes Jahr ausweisen (2005, 2006 usw.) und die Y-Achse habe ich auch schon skaliert. Es fehlt nur der vertikale (am besten gestrichelte) Strich beim 01.01.2008.
Danke für eure Hilfe,
Maren
ich bin gerade dabei meine Daten über CO2 Futures grafisch darzustellen und möchte dies gerne mit ggplot machen, sieht einfach besser aus als mit der normalen plot Funktion. Meine Daten reichen vom 01.01.2005 bis zum 31.12.2012 und ich würde gerne einen vertikalen Strich beim 01.01.2008 durch mein Diagramm laufen lassen, da dort die zweite Handelsphase anfängt. Das einzige Problem bei ggplot stellt die Angabe des Datums dar, bei der normalen plot Funktion mache ich dies ja mit format. Bei der normalen Plot-Funktion weiß ich wie das geht: (Datum auf der X-Achse, Preise auf der y-Achse):
Zunächst muss ja das Datum richtig umgewandelt werden:
Code: Alles auswählen
old$datum <- as.character(old$datum)
old$datum <- as.Date(old$datum, format = "%d.%m.%Y")
Dann der normale Plot Code:
Code: Alles auswählen
plot(old$datum, old$ice_eua, type = "l",
xlab = "", ylab = "Euro in Tonnen")
abline(v=as.Date("2008-01-01",format = "%Y-%m-%d"), lty = 2)
Code: Alles auswählen
ggplot(old, aes(x = old$datum, y = old$ice_eua)) + geom_line()
last_plot() + labs(x = "Zeit", y = "Euro in Tonnen") + ylim(0,50)
last_plot() + scale_x_date(date_breaks = "1 year", date_labels = "%Y")
last_plot() + geom_vline(aes(xintercept = "2008-01-01", format("%Y-%m-%d")), linetype = 2)
Danke für eure Hilfe,
Maren