Einfügen der Standardabweichung als schattierte Ebene in Plots

Methoden der Zeitreihenanalyse

Moderator: schubbiaschwilli

Antworten
Liesel93
Beiträge: 1
Registriert: Fr Nov 06, 2020 11:18 am

Einfügen der Standardabweichung als schattierte Ebene in Plots

Beitrag von Liesel93 »

Hallo ihr lieben,

ich habe eine wahrscheinlich sehr simple Frage.

Und zwar arbeite ich mit langzeitmessreihen und habe durchschnittliche Tagesgänge erstellt. Habe mit dem plot-Befehl Grafen erstellt und würde nun gerne noch die Standardabweichung als shaded area hinzufügen?

Vielen Dank schonmal für jegliche Hilfe

Lisa
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: Einfügen der Standardabweichung als schattierte Ebene in Plots

Beitrag von bigben »

Liebe Lisa,

zunächst gilt als Daumenregel: je ausgefeilter Deine Grafikvorstellungen sind, umso eher lohnt es sich, ins Grafiksystem ggplot2 zu wechseln. Das heißt natürlich nicht, dass man nicht auch sehr viel mit base graphics machen kann. Die Frage ist mehr, wieviel willst Du in Sachen Grafik noch? Brauchen wir nur eine shaded area für diese Linie? Alles klar. Kann man mit dem Befehl polygon() machen:

Code: Alles auswählen

bsp <- data.frame( time = seq(0,90, 10),
                   mean = c(10, 20, 30, 40, 45, 47, 50, 63, 65, 61),
                   ymin = c( 6, 16, 25, 32, 33, 39, 42, 50, 55, 52),
                   ymax = c(19, 28, 42, 46, 50, 57, 60, 73, 74, 71))

plot(mean ~ time, data = bsp, ylim = c(0,75), ylab ="value")
polygon(c(bsp$ymin, rev(bsp$ymax)) ~ c(bsp$time, rev(bsp$time)), col ="lightgrey", border = NA)
abline(h = seq(0,70,10), lty = 2, col = "grey")
lines(mean ~ time, data = bsp, lwd = 2.5, type ="b", col = "firebrick")
axis(4)
Bist Du ein Grafikgourmet? Bist Du kleinlich in Details? Dann vielleicht lieber gleich daneben auch ggplot2 lernen.

Code: Alles auswählen

library(ggplot2)
ggplot(bsp, aes(x = time)) +
  geom_ribbon(aes(ymin = ymin, ymax = ymax), fill = "black", alpha = .2) +
  geom_line(aes(y = mean), lwd = 1.5, color = "firebrick") +
  geom_point(aes(y = mean), size = 4) +
  scale_x_continuous(breaks=seq(0,80,20)) +
  ylab("value") 
Ansonsten ist man in R jahrzehntelang auch mit dem alten System klargekommen.

LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Antworten