在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")
有没有办法将点分别绘制到侧面,而不是在箱线图上?
在我的特定情况下,我想这样做,因为这些点模糊了情节(即使是透明度等),这个问题在这里不是问题。
答案 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))
这是两个情节的样子: