Plotten mit ggplot

Programmierung und Formatierung von Grafiken und Plots mit R.

Plotten mit ggplot

Beitragvon heinz983 » Di 29. Aug 2017, 19:03

Hallo ich habe wenig Erfahrung mit dem ggplot2 Paket und bräuchte etwas Hilfe.

Ich möchte die Daten KG1, KG2, KG3, KG4 gruppiert nach "Group" mit ggplot()+geom_point oder geom_line darstellen. Wie kann ich mit stat_summary() den colMeans() für die einzelnen Messzeitpunkte KG1 bis KG4 darstellen? Auf der x-Achse liegen die Messzeitpunkte und auf der y-Achse die Werte.
Wie kann ich die Variablen KF1 bis KF4 optional hinzufügen?

Code: Alles auswählen
sample <- data.frame(ID = 1:30,
                     Group = c(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2),
                     KG1 = rnorm(30,0,1), KG2 = rnorm(30,0,1), KG3 = rnorm(30,0,1), KG4 = rnorm(30,0,1),
                     KF1 = rnorm(30,0,1), KF2 = rnorm(30,0,1), KF3 = rnorm(30,0,1), KF4 = rnorm(30,0,1)
                     )


Danke für die Hilfe!
heinz983
 
Beiträge: 5
Registriert: Mo 15. Mai 2017, 22:27
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Plotten mit ggplot

Beitragvon heinz983 » Fr 1. Sep 2017, 08:59

Hallo Zaungast,
im ersten Schritt geht es mir nur um die Variablen KG1, KG2, KG3, KG4. Plotten möchte ich lediglich die Mittelwerte, gruppiert nach sample$Group.

Code: Alles auswählen
sample.KG <- cbind(sample[,1:6])
Mittelwerte <- aggregate(sample.KG[,3:6], list(sample.KG$Group), mean)


Wie kann ich dies mit ggplot2 machen, ohne die data.frames "sample.KG" und "Mittelwerte" erstellen zu müssen?
heinz983
 
Beiträge: 5
Registriert: Mo 15. Mai 2017, 22:27
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Plotten mit ggplot

Beitragvon heinz983 » Mo 4. Sep 2017, 17:14

Hallo Zaungast,

ich hab teilweise eine Lösung gefunden. Folgende Fragen sind noch offen:
- Wie kann ich lediglich die Daten KG1, KG2, KG3, KG4 plotten
- Wie bekomme ich eine Unterteilung mit 'facet_wrap()' der beiden Variablen KG und KF hin?

Code: Alles auswählen
library(reshape2)
library(ggplot2)

sample_wide <- data.frame(ID = 1:30,
                       Group = c(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2),
                       KG1 = rnorm(30,0,1), KG2 = rnorm(30,0,1), KG3 = rnorm(30,0,1), KG4 = rnorm(30,0,1),
                       KF1 = rnorm(30,0,1), KF2 = rnorm(30,0,1), KF3 = rnorm(30,0,1), KF4 = rnorm(30,0,1)
                       )

# Sicherstellen das "ID" und "Group" Faktoren sind
sample_wide$ID <- factor(sample_wide$ID)
sample_wide$Group <- factor(sample_wide$Group)

# Datensatz vom 'wide' ins 'long'-Format bringen
data_long <- melt(sample_wide, id.vars = c("ID", "Group"))

# Plotten
ggplot(data_long, aes(x=variable, y=value, group=Group, color=Group)) +
       stat_summary(fun.y = mean, geom = "line")
heinz983
 
Beiträge: 5
Registriert: Mo 15. Mai 2017, 22:27
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post

Re: Plotten mit ggplot

Beitragvon heinz983 » Mo 4. Sep 2017, 18:20

Hallo Zaungast,
ich hab mich nicht geärgert gefühlt - deine erste Frage hat mich auf die richtige Idee gebracht. Jetzt hab ich die Lösung komplett, so dass wenigstens jenen geholfen ist, die sich hierher verirren ;)

Code: Alles auswählen
library(reshape2)
library(tidyr)
library(ggplot2)

sample_wide <- data.frame(ID = 1:30,
                       Group = c("KG","KG","KG","KG","KG","KG","KG","KG","KG","KG","KG","KG","KG","KG","KG","IG","IG","IG","IG","IG","IG","IG","IG","IG","IG","IG","IG","IG","IG","IG"),
                       KG1 = rnorm(30,0,1), KG2 = rnorm(30,0,1), KG3 = rnorm(30,0,1), KG4 = rnorm(30,0,1),
                       KF1 = rnorm(30,0,1), KF2 = rnorm(30,0,1), KF3 = rnorm(30,0,1), KF4 = rnorm(30,0,1)
                       )

# Sicherstellen das "ID" und "Group" Faktoren sind
sample_wide$ID <- factor(sample_wide$ID)
sample_wide$Group <- factor(sample_wide$Group)

# Datensatz vom 'wide' ins 'long'-Format bringen
data_long <- melt(sample_wide, id.vars = c("ID", "Group"))

# 'variable' in "Parameter" und "Messzeitpunkt" splitten
data_long <- data_long %>% separate(variable, into = c("Parameter", "Messzeitpunkt"), 2)

# Plotten
ggplot(data_long,
       aes(x=Messzeitpunkt, y=value, group=Group, color=Group)) +
       geom_point() +
       stat_summary(fun.y = mean, geom = "line") +
       facet_wrap(~Parameter)
heinz983
 
Beiträge: 5
Registriert: Mo 15. Mai 2017, 22:27
Danke gegeben: 0
Danke bekommen: 0 mal in 0 Post


Zurück zu Grafiken und Plots

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron