Seite 1 von 1

Histogramm + Mittelwertlinie +

Verfasst: Mo Okt 04, 2021 11:41 am
von gming11
Liebe Alle,

Ich habe folgenden sehr einfachen Pseudodatensatz von 10 Probanden, welche eine Frage in einem fragebogen mit den Ausprägungen 1-5 beantworten haben:

Code: Alles auswählen

ID <- c(1,2,3,4,5,6,7,8,9,10)
var<- c(1,1,3,2,2,1,1,1,2,1)
bsp1 <- (data.frame(a, b))
Ich wollte fragen, wie hier vor allem z.b mit GGplot ein Histogramm gestaltet werden kann, welches die möglichen Ausprägungen 1 bis 5 auf der X-Achse und die Anzahl der zutreffenden Ausprägungen auf der Y-Achse hat und eine mögliche Mittelwertlinie der Ergebnisse auch ersichtlich ist.

Liebe Grüße

Re: Histogramm + Mittelwertlinie +

Verfasst: Mo Okt 04, 2021 12:15 pm
von ruedi_br
Was will uns die letzte Zeile

Code: Alles auswählen

bsp1 <- (data.frame(a, b))
sagen? Weder a noch b kommen vorher vor :shock:
Richtig erkannt allerdings, dass ggplot2 einen dataframe braucht.
Und eigentlich ist auch ID überflüssig. Mit mean ließe ich der Mittelwert rechnen und in die Grafik als vline (geom_vline) einzeichnen.

VG Ruedi

Re: Histogramm + Mittelwertlinie +

Verfasst: Di Okt 05, 2021 11:53 am
von bigben
Hallo gming,
gming11 hat geschrieben: Mo Okt 04, 2021 11:41 am mit den Ausprägungen 1-5 beantworten haben:
[...]
Ich wollte fragen, wie hier vor allem z.b mit GGplot ein Histogramm gestaltet werden kann, ...
Nein, das wäre nicht richtig. Histogramme sind eine geeignete Darstellungsform für die Verteilung kontinuierlicher Daten. Deine Skalenwerte sind diskret, deshalb sollten sie nicht in einem Histogramm, sondern in einem Balkendiagramm dargestellt werden.

Entspräche das hier Deinen Vorstellungen?

Code: Alles auswählen

library(ggplot2)
ID <- c(1,2,3,4,5,6,7,8,9,10)
var<- factor(c(1,1,3,2,2,1,1,1,2,1), levels = 1:5)
bsp1 <- data.frame(ID, var)

ggplot(bsp1) +
  geom_bar(aes(x = var), fill = "skyblue", alpha = .8) +
  scale_x_discrete(drop = FALSE) +
  geom_vline(aes(xintercept = mean(as.integer(var))),
             lty = 2, color ="firebrick", lwd = 1.5) +
  geom_label(aes(x = mean(as.integer(var)), y= .5, label = "mean"),
            color = "firebrick")
LG,
Bernhard