folgte ich this nette Antwort Split Violine Plots in einem 2x2-DesignOverlay scatterpoints auf Split Violine Stück mit ggplot2
Nun zu erzeugen vorstellen, dass diese Daten aus wiederholten Messungen in verschiedenen Fächern. Ich möchte zusätzlich die einzelnen Daten in einem Streudiagramm darstellen (ich weiß, dass die Handlung am Ende vielleicht zu beschäftigt ist, würde ich gerne zuerst sehen).
Ich bin fast da, aber habe einen kleinen Fehler, der wahrscheinlich leicht behoben ist. Ich füge ein ganzes Arbeitsbeispiel hinzu, falls es einen besseren Weg gibt, dies zu tun.
Dieser erste Teil I direkt aus der vorherige Frage kopiert:
library(dplyr)
library(ggplot2)
set.seed(20160229)
ich subj
meinen Datenrahmen hinzugefügt, weil ich jedes Lebewesen Mittelwert
my_data = data.frame(
y=c(rnorm(1000), rnorm(1000, 0.5), rnorm(1000, 1), rnorm(1000, 1.5)),
x=c(rep('a', 2000), rep('b', 2000)),
m=c(rep('i', 1000), rep('j', 2000), rep('i', 1000)),
subj=c(rep(c(rep('1',200),rep('2',200),rep('3',200),rep('4',200),rep('5',200)),4))
)
pdat <- my_data %>%
group_by(x, m) %>%
do(data.frame(loc = density(.$y)$x,
dens = density(.$y)$y))
pdat$dens <- ifelse(pdat$m == 'i', pdat$dens * -1, pdat$dens)
pdat$dens <- ifelse(pdat$x == 'b', pdat$dens + 1, pdat$dens)
ggplot(pdat, aes(dens, loc, fill = m, group = interaction(m, x))) +
geom_polygon() +
scale_x_continuous(breaks = 0:1, labels = c('a', 'b')) +
ylab('density') +
theme_minimal() +
theme(axis.title.x = element_blank())
Bisher plotten werden will, große Werke . Jetzt versuche ich meine Mittelwerte für jedes Thema hinzufügen
meanY = aggregate(y ~ x + m + subj, my_data, mean, drop=TRUE)
ggplot(pdat, aes(dens, loc, fill = m, group = interaction(m, x))) +
geom_polygon() +
geom_point(data=meanY, aes(fill = m, group = interaction(m, x))) +
scale_x_continuous(breaks = 0:1, labels = c('a', 'b')) +
ylab('density') +
theme_minimal()
ich den Fehler: Error in eval(expr, envir, enclos) : object 'dens' not found
versuchen, ein '+' nach dem Aufruf von 'geom_point()' – bouncyball
@bouncyball Woops hinzufügen! Das war es nicht, aber danke. Ich werde die Frage bearbeiten. – elisa