Mehrere Barplots in einer Abbildung

Wie erstelle ich Grafiken, was ist zu beachten?

Moderatoren: EDi, jogo

Antworten
Florian
Beiträge: 1
Registriert: Mi Aug 16, 2023 7:13 pm

Mehrere Barplots in einer Abbildung

Beitrag von Florian »

Hallo ihr lieben R Profis,
ich schreibe gerade meine Bachelorarbeit, bin noch recht neu in der Arbeit mit R und versuche eine Abbildung mit ggplot2 zu erstellen. Ich habe den Datensatz einmal als kurze Excel Datei hochgeladen, weil mein .Rdata Format nicht erkannt wurde. Ich würde gerne auf der X Achse die "Subskalen" abtragen und auf der Y Achse dann die Mittelwerte dieser Subskalen. Jetzt würde ich das gerne gruppieren nach Gruppe 1 und Gruppe 2. Jetzt weiß ich nicht, wie ich bei aes die einzelnen Komponenten definieren soll, weil ich keine eigene Variable für die Gruppierung habe.
Kann mir da jemand weiterhelfen wie ich das in ggplot umsetzen kann?
Vielen lieben Dank im voraus!
Liebe Grüße
Florian
Dateianhänge
Datensatz.xlsx
(9.83 KiB) 32-mal heruntergeladen
bigben
Beiträge: 2781
Registriert: Mi Okt 12, 2016 9:09 am

Re: Mehrere Barplots in einer Abbildung

Beitrag von bigben »

Hallo,

Du schreibst richtig, dass Du eine Gruppierungsvariable brauchst. Dafür musst Du die Daten aus dem breiten in das lange Format umwandeln. Hier beispielsweise mit der Funktion melt aus dem Paket data.table:

Code: Alles auswählen

daten <- read.table(sep="\t", dec = ".", header = TRUE,
  text="Subskalen 	Mittelwerte Gruppe1	Mittelwerte Gruppe2
AnET	25.41	20.55
AnFS	49.57	55.61
AnFT	50.63	57.81
AnES	45.75	47.89
AnL	55.18	46.89
AbET	50.66	41.20
AkFT	50.96	42.24
AkEST	49.11	42.77
"
)
# Subskalen haben eine nicht-alphabetische Reihenfolge
daten$Subskalen <- factor(daten$Subskalen, labels = daten$Subskalen)

library(data.table)
setDT(daten)
d.long <- melt(daten, id.vars="Subskalen")
head(d.long, 10)

library(ggplot2)
plot1 <- ggplot(d.long, 
                aes(x = Subskalen, y = value, group = variable, fill = variable)) +
         geom_col(position = "dodge") +
         theme_minimal()
print(plot1)


#------------
# Alternative Darstellungsform, wenn es nicht immer Balken sein müssen
plot2 <- ggplot(d.long, 
                aes(x = Subskalen, y = value, color = variable)) +
  geom_point() +
  theme_minimal()
print(plot2)
HTH,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Antworten