我的数据框d
str(d)
'data.frame': 10821 obs. of 2 variables:
$ Actual : Factor w/ 10 levels "SA103","SA111",..: 6 6 6 6 9 9 6 9 6 6 ...
$ Planned: Factor w/ 17 levels "SA103","SA111",..: 1 6 6 6 1 9 6 9 6 6 ...
我正在使用 ggplot2 和以下代码
进行绘图ggplot(d, aes(x=Actual, y=Planned)) + geom_point()
我希望在每个点显示观察次数,以便轻松识别Planned&之间偏差大的位置。实际水平。 (例如:如果显示SA121(计划)移至SA103(实际)~1000次,那么这是一个严重问题。
如何将数据标签放入此类情节中,数据标签显示观察次数(对于给定的x,y条件)?
答案 0 :(得分:4)
如果你真的需要在每个点看到obs的数量,你可以创建自己的函数来提取N,然后在ggplot中的stat_summary中调用该函数:
library(ggplot2)
Actual <- sample( LETTERS[1:10], 5000, replace=TRUE, prob=c(rep(0.25, 10)))
Planned <- sample( LETTERS[1:17], 5000, replace=TRUE, prob=c(rep(0.25, 17) ))
d <-as.data.frame(cbind(Actual, Planned))
N <- function(x){
return(data.frame(y = mean(x), label = length(x)))
}
ggplot(d, aes(x=Actual, y=Planned)) +stat_summary(fun.data = N, geom = "text")
或者,您可以使用geom_count()根据观察次数调整点的大小。
ggplot(df, aes(x=Actual, y=Planned)) + geom_point() + geom_count()