Я хочу показать совокупную долю переменной столбца (например, миль на галлон) по цвету (fcyl) и одну без цвета. Это отличается от использования cowplot или лоскутного одеяла, чтобы показать их бок о бок. Я специально хочу, чтобы они были показаны вместе.
Вот пример:
mtcars <- mutate(mtcars, fcyl = factor(cyl, levels = c("4","6","8"),
labels = c("4 cycles", "6 cycles", "8 cycles")))
mtcars %>% filter(fcyl %in% c("4 cycles", "6 cycles")) %>%
ggplot(aes(x = mpg, color = fcyl)) + stat_ecdf(size=2)
#This graph shows cumulative proportion of mpg by 4 and 6 cycles of 'fcyl'
mtcars %>%
ggplot(aes(x = mpg)) + stat_ecdf(size=2) #This one is total cumulative density proportion
Я попытался добавить stat_edcf
к первому графику, и это можно сделать для всех трех факторов в fcyl, но не для двух конкретных.
mtcars %>%
ggplot(aes(x = mpg)) + stat_ecdf(size=2) +
stat_ecdf(aes(x = mpg, color = fcyl), size=2) #This works
mtcars %>%
ggplot(aes(x = mpg)) + stat_ecdf(size=2) +
stat_ecdf(aes(x = mpg, color = filter(mtcars, fcyl %in% c("4 cycles", "6 cycles")), size=2))
#This does not work.
Как показать их на одном графике?
Просто добавьте новый слой:
mtcars %>%
filter(fcyl %in% c("4 cycles", "6 cycles")) %>%
ggplot(aes(x = mpg)) +
stat_ecdf(size = 2, aes(color = 'total')) +
stat_ecdf(size = 2, aes(color = fcyl)) +
scale_color_manual(values = c("#F8766D", "#00BFC4", "black"))
О, я думал, это то, чего ты хотел. Вы можете просто передать нефильтрованные данные в качестве аргумента data
черному слою: измените эту строку на stat_ecdf(size = 2, aes(color = 'total'), data = mtcars) +
А если фильтровать раньше, то как в итоге будут содержаться все данные? Fcyl имеет 3 фактора. Я что-то упускаю?