避免在ggplot2

时间:2015-11-16 17:06:41

标签: r ggplot2 data-visualization

在ggplot2中,geom_point默认为绘制当前图。例如,在调用geom_boxplot之后调用geom_point会导致绘制在boxplot上的点:

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

boxplot with overlaid points

有没有办法将点分别绘制到侧面,而不是在箱线图上?

在我的特定情况下,我想这样做,因为这些点模糊了情节(即使是透明度等),这个问题在这里不是问题。

1 个答案:

答案 0 :(得分:4)

您可以通过为箱线图和点提供单独的x值来单独绘制它们:

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