我正在使用条形图来显示一个城市停车咪表的收入分布。我的数据框包括停车计时器 ID、该仪表的年收入以及该仪表根据其总收入属于哪个十分位 (1-10) 的列。所以我的命令如下所示:
> rev <- ggplot(parking, aes(x=decile, y=revenue))
> rev + geom_bar(stat="identity")
结果正是我想要的,但我想在图表中的每个条形顶部添加每个十分位数的总收入,我不知道如何。我试过这个:
> aggrev <- aggregate(revenue~decile, data=parking, sum)
> totals <- aggrev$revenue
> rev + geom_bar(stat="identity") + geom_text(aes(label=totals))
但我收到此错误消息:错误:美学长度必须为一,或与 dataProblems:totals 的长度相同。
我检查了length(decile)和length(totals),它们的值分别是4600和10。所以我明白为什么会发生这种情况,但为什么我不能在 10 个条中添加任何 10 个字符?或者让图表自动显示条形总数,也许使用“身份”?我决定只运行这个:
ggplot(aggrev, aes(x=decile,y=revenue))+geom_bar()+geom_text(aes(label=revenue))
这有效,但我宁愿不必每次我想要标签时都制作一个新的数据框。