В ggplot2 по подразбиране geom_point се нанася над текущия график. Например, извикването на geom_point след извикване на geom_boxplot води до резултати в точките, изложени върху полето за кутии:
ggplot(iris, aes(x = "All", y = Sepal.Length)) +
geom_boxplot() +
geom_point(aes(color=Species), position = "jitter")
Има ли начин да се начертаят точките отделно отстрани, а не над кутията?
В конкретния случай искам да направя това, защото точките замъгляват парцела (дори с прозрачност и т.н.), проблем, който не е проблем с примерния набор от данни тук.
Отговори:
4 за отговор № 1Можете да ги нанесете поотделно, като предоставите отделни x-стойности за 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))
Ето как изглеждат двата парцела: