Histogramm + Mittelwertlinie +

Wie erstelle ich Grafiken, was ist zu beachten?

Moderatoren: EDi, jogo

Antworten
gming11
Beiträge: 22
Registriert: Do Feb 25, 2021 10:37 am

Histogramm + Mittelwertlinie +

Beitrag 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
ruedi_br
Beiträge: 143
Registriert: Do Mär 01, 2018 3:53 pm

Re: Histogramm + Mittelwertlinie +

Beitrag 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
fortune(111)
bigben
Beiträge: 2381
Registriert: Mi Okt 12, 2016 9:09 am

Re: Histogramm + Mittelwertlinie +

Beitrag 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
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Antworten