我有一个数据框,可以用:
生成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。
非常感谢
答案 0 :(得分:2)
我认为您只想将唯一值用作传递给geom_point
的单独数据框:
p <- p + geom_point(data = unique(test[,c('a','c','d')]),
aes(a, c), colour="red", shape=4, size=4)