2015-11-16 1 views
2

В ggplot2 geom_point по умолчанию создает график по текущему графику. Например, вызов geom_point после вызова geom_boxplot результатов в точках нанесенной над boxplot:Избегайте наложения сюжета с использованием geom_point в ggplot2

ggplot(iris, aes(x = "All", y = Sepal.Length)) + 
    geom_boxplot() + 
    geom_point(aes(color=Species), position = "jitter") 

boxplot with overlaid points

Есть ли способ построить точки отдельно на сторону, а не над boxplot?

В моем конкретном случае я хочу сделать это, потому что точки затеняют сюжет (даже с прозрачностью и т. Д.), Проблема, которая не является проблемой с примером набора данных здесь.

ответ

4

Вы можете построить их по отдельности путем подачи отдельных рентгеновское значения для boxplot и точки:

ggplot(iris, aes(y = Sepal.Length)) + 
    geom_boxplot(aes(x="Boxplot")) + 
    geom_point(aes(x="Points", color=Species), 
      position = position_jitter(width=0.15, height=0)) 

Другой вариант заключается в использовании присущи рефлективный, вербальный по видам:

ggplot(iris, aes(y = Sepal.Length)) + 
    geom_boxplot(aes(x="All Data"), width=0.5) + 
    geom_boxplot(aes(x="By Species", colour=Species), width=0.5, 
       position=position_dodge(width=0.6)) 

Вот что два участка выглядят так:

enter image description here