0

信じられないほど簡単な質問になるだろうと私は知っています。次の例を使用して、棒グラフを使用して月ごとの平均日数を表示しています。

dat <- structure(list(Days = c("217.00", "120.00", "180.00", "183.00", 
    "187.00", "192.00"), Amt = c("1,786.84", "1,996.53", 
    "1,943.23", "321.30", "2,957.03", "1,124.32"), Month = c(201309L, 
    201309L, 201309L, 201310L, 201309L, 201309L), Vendor = c("Comp A", 
    "Comp A", "Comp A", "Comp A", "Comp A", 
    "Comp A"), Type = c("Full", "Full", 
    "Self", "Self", "Self", "Self"
    ), ProjectName = c("Rpt 8", 
    "Rpt 8", "Rpt 8", 
    "Rpt 8", "Rpt 8", 
    "Rpt 8")), .Names = c("Days", 
    "Amt", "Month", "Vendor", "Type", "ProjectName"
    ), row.names = c("558", "561", "860", "1157", "1179", "1221"), class =
    "data.frame")

ggplot(dat, aes(x=as.character(Month),y=as.numeric(Days),fill=Type))+
stat_summary(fun.y='mean', geom = 'bar')+
ggtitle('Rpt 8')+
xlab('Month')+
ylab('Average Days')+
geom_text(stat='bin',aes(y=100, label=paste('Avg:\n',..count..)))

現在、私のラベルにはカウントが表示されており、指定した場所に表示されていyます。

したい:

  • バーの上部にラベルを配置します。
  • カウントではなく、平均を表示します。

私はかなり徹底的に、そして失敗しましたが、SOおよび他の場所で他のほとんどのソリューションを試しました。

4

1 に答える 1

2

ちょうどそれを手に入れました:

means<-ddply(dat,.(Vendor,Type,Month), summarise, avg=mean(as.numeric(Days)))
ggplot(dat, aes(x=as.character(Month),y=as.numeric(Days),fill=Type))+
stat_summary(fun.y='mean', geom = 'bar')+
geom_text(data = means, stat='identity',
          aes(y=avg+7, label=round(avg,0),group=Type))

これとほぼ同じコードが他の場所にあることに気付きました。私のエラーは、正しい閉じ括弧の外にround'sを配置することで発生しました-したがって、すべてのラベルを軸上に移動します...DUH!00x

于 2013-11-22T05:48:42.160 に答える