Wenn ich ggplot2 verwende, um facettierte Diagramme zu erstellen, habe ich Probleme, einzelne Beschriftungen in jeder Facette zu erhalten, wenn ich auch einen Gruppierungsparameter festlege. Ohne Angabe von group = ...
funktionieren die Dinge gut, aber ich versuche Diagramme von gepaarten Daten zu erstellen, die die Änderungen vor und nach der Behandlung betonen. Hiergeom_text mit facet_wrap in ggplot2 wenn Gruppe
ein Beispiel:
library(tidyr)
library(ggplot2)
set.seed(253)
data <- data.frame(Subject = LETTERS[1:10],
Day1.CompoundA = rnorm(10, 4, 2),
Day2.CompoundA = rnorm(10, 7, 2),
Day1.CompoundB = rnorm(10, 5, 2),
Day2.CompoundB = rnorm(10, 5.5, 2))
# Compare concentration of compounds by day
A <- t.test(data$Day1.CompoundA, data$Day2.CompoundA, paired = TRUE)
B <- t.test(data$Day1.CompoundB, data$Day2.CompoundB, paired = TRUE)
data.long <- gather(data, key = DayCompound, value = Concentration, -Subject) %>%
separate(DayCompound, c("Day", "Compound"))
# text to annotate graphs
graphLabels <- data.frame(Compound = c("CompoundA", "CompoundB"),
Pval = paste("p =", c(signif(A$p.value, 2),
signif(B$p.value, 2))))
Ok, jetzt, dass die Daten eingerichtet sind, kann ich eine boxplot machen ganz gut:
ggplot(data.long, aes(x = Day, y = Concentration)) +
geom_boxplot() +
facet_wrap(~ Compound) +
geom_text(data = graphLabels, aes(x = 1.5, y = 10, label = Pval))
Aber wenn ich will Um Liniendiagramme anzuzeigen, die die paarweise Natur der Daten hervorheben, indem jedes Motiv in einer anderen Farbe angezeigt wird, funktionieren die Facettenbeschriftungen nicht.
ggplot(data.long, aes(x = Day, y = Concentration, color = Subject, group = Subject)) +
geom_point() + geom_line() +
facet_wrap(~ Compound) +
geom_text(data = graphLabels, aes(x = 1.5, y = 10, label = Pval))
# Error in eval(expr, envir, enclos) : object 'Subject' not found
Irgendwelche Vorschläge?
Vielen Dank! Das hat wunderbar funktioniert! – LauraS