簡體   English   中英

ggplot2:使用stat_summary的fun.y =“ mean”的條形圖的標簽值

[英]`ggplot2`: label values of barplot that uses `fun.y=“mean”` of `stat_summary`

例如,如果我使用ggplot2stat_summary()繪制3齒輪,4齒輪和5齒輪汽車每加侖平均英里數的條形圖,如何用這些條形圖的平均值標記每個條形圖mpg?

library(ggplot2)
CarPlot <- ggplot() +
  stat_summary(data= mtcars,
               aes(x = factor(gear),
                   y = mpg,
                   fill = factor(gear)
                   ),
               fun.y="mean",
               geom="bar"
               )
CarPlot

我知道您通常可以使用geom_text() ,但是我很難弄清楚該怎么做才能從stat_summary()獲得平均值。

您應該使用內部變量..y..來獲取計算出的平均值。

在此處輸入圖片說明

library(ggplot2)
CarPlot <- ggplot(data= mtcars) +
               aes(x = factor(gear),
                   y = mpg)+
      stat_summary(aes(fill = factor(gear)), fun.y=mean, geom="bar")+
      stat_summary(aes(label=round(..y..,2)), fun.y=mean, geom="text", size=6,
             vjust = -0.5)
CarPlot

但最好事先進行匯總。

我只是簡單地對統計數據進行預先計算,然后再構建圖表:

library(plyr)
library(ggplot2)
dat = ddply(mtcars, .(gear), summarise, mean_mpg = mean(mpg))
dat = within(dat, {
    gear = factor(gear)
    mean_mpg_string = sprintf('%0.1f', mean_mpg)
  })
ggplot(dat, aes(x = gear, y = mean_mpg)) + 
    geom_bar(aes(fill = gear), stat = "identity") + 
    geom_text(aes(label = mean_mpg_string), vjust = -0.5)

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM