R ggplot2如何绘制汇总统计量(示例内)

时间:2012-01-16 12:15:15

标签: r ggplot2

我有一个数据框,可以用:

生成
a <- c(rep("w",3), rep("x",3), rep("y",3), rep("z",3))
b <- rnorm(12)
c <- c(rep(rnorm(1), 3), rep(rnorm(1), 3),rep(rnorm(1), 3),rep(rnorm(1), 3))
d <- c(1,1,1,2,2,2,1,1,1,2,2,2)
test <- data.frame(a,b,c,d)

我想为“b”列生成箱线图,并且在每个箱线图上显示c列的值 - 这是每个“a”的一种参考值(因此是重复)。我几乎有以下内容,它还显示了我希望如何显示数据(facet):

library(ggplot2)
p <- ggplot(test) 
p <- p + geom_boxplot(aes(a, b)) 
p <- p + geom_point(aes(a, c), colour="red", shape=4, size=4)
p <- p + facet_grid(. ~ d, , scales="free_x")
p

这种方法的唯一问题是每个“a”值实际上有3个geom_points(彼此叠加) - 如何消除这种低效率?我只想要一个geom_point。

非常感谢

1 个答案:

答案 0 :(得分:2)

我认为您只想将唯一值用作传递给geom_point的单独数据框:

p <- p + geom_point(data = unique(test[,c('a','c','d')]),
                    aes(a, c), colour="red", shape=4, size=4)