如何使用ggplot2使用值的平均值标记图形

Jul*_*iaz 8 r ggplot2

我创建了一个geom_point图表,其中y轴点是各个x轴值的平均值.当我尝试用均值标记点时,我得到的就是所有的值.

这是我到目前为止:

ggplot(test, aes(x=reorder(Type, Rating, mean), y=Rating, label=Rating)) +
       stat_summary(fun.y="mean", geom="point") +
       geom_text()
Run Code Online (Sandbox Code Playgroud)

koh*_*ske 17

你可以像这样结合stat_summary和geom_text:

d <- data.frame(grp=gl(3,5, labels=letters[1:3]), v=rnorm(15))
ggplot(d, aes(grp, v)) + 
  stat_summary(fun.y=mean, geom="point") +
  stat_summary(aes(label=..y..), fun.y=mean, geom="text", size=8)
Run Code Online (Sandbox Code Playgroud)

但可能最好先预先聚合并格式化标签:

ggplot(transform(ddply(d, .(grp), summarize, v=mean(v)), V=sprintf("%.02f", v)), 
  aes(grp, v)) +
  geom_point() + geom_text(aes(label=V))
Run Code Online (Sandbox Code Playgroud)

  • 你可能想在 `geom_text` 中使用 `hjust` 和 `vjust` 来在点和文本之间留出一些空间。 (2认同)