ggplot: Stacked Bars mit mehreren Variablen

Wie erstelle ich Grafiken, was ist zu beachten?

Moderatoren: EDi, jogo

Antworten
davis1912
Beiträge: 2
Registriert: Di Dez 10, 2019 6:21 pm

ggplot: Stacked Bars mit mehreren Variablen

Beitrag von davis1912 »

Hallo,

ich habe folgendes Problem und hoffe ihr verzeiht mir meine Unwissenheit:

Ich würde gerne folgende Grafik der EZB nachbauen: https://www.ecb.europa.eu/mopo/implemen ... ex.en.html
Dafür habe ich den Datensatz runtergeladen und habe nun die Variablen date, abspp, cspp, pspp und cbpp.
Wie kann ich nun eine Stacked Bar Grafik erstellen, bei der die Zeit auf der X-Achse ist?

Leider fehlt mir jeglicher Ansatz und hoffe ich könnt mir dabei helfen!

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

Re: ggplot: Stacked Bars mit mehreren Variablen

Beitrag von EDi »

Dafür habe ich den Datensatz runtergeladen und habe nun die Variablen date, abspp, cspp, pspp und cbpp.
Hier ein Ansatz:

1. Einlesen & prüfen (?read.table, ?str)
2. Ins lange format packen (?tidyr::pivot_longer)
3. mit ggplot plotten (?ggplot2, geom_bar(aes(x=date, y=value, color=variable))
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.
davis1912
Beiträge: 2
Registriert: Di Dez 10, 2019 6:21 pm

Re: ggplot: Stacked Bars mit mehreren Variablen

Beitrag von davis1912 »

Hallo Edi,

Danke für deinen Tipp - soweit habe ich es schon gut hinbekommen:

Code: Alles auswählen

bar <- app2 %>%
  ggplot(aes(x = time, y = Value, fill = Var_Name)) +
  geom_col(position = "stack") +
  xlab("Jahr") +
  ylab("Wert (in Mrd. Euro)") +
  scale_fill_manual(values=c("#999999", "#D55E00", "#009E73", "#56B4E9")) +
  scale_y_continuous(breaks = seq(-10, 90, by = 10))  +
  geom_vline(color="blue", linetype="dashed", xintercept=as.numeric(app$time[])) 

bar <- bar + theme(axis.line = element_line(colour = "black"),
                   panel.background = element_rect(fill = "white", size = 0.2))
bar <- bar + theme(legend.position="bottom")
bar <- bar + theme(legend.title = element_blank()) 

plot(bar)
Weißt du wie ich eine geometrische Linie (geom_vline) zeichnen kann innerhalb eines bestimmten Zeitraums?
Dh. von März 2015 bis 2016: 60 Mrd,
ab 2016 Sprung auf 80 Mrd. usw.

Viele Grüße!
Zuletzt geändert von jogo am Do Dez 12, 2019 12:32 pm, insgesamt 1-mal geändert.
Grund: Formatierung verbessert. http://forum.r-statistik.de/viewtopic.php?f=20&t=29
Antworten