我搜索了这个,但我只是附带了这个类似的问题,但标记了堆积直方图中的计数值。我想要做的是在每个直方图栏上标记一个price
值。
使用类似的histogram-ggplot-show-count-label-for-each-bin-for-each-category
ggplot(aes(x = price ), data = diamonds) +
geom_histogram(aes(fill = cut ), binwidth=1500, colour="grey20", lwd=0.2) +
stat_bin(binwidth=1500, geom="text", colour="white", size=3.5,
aes(label=..count.., group=cut, y=0.8*(..count..))) +
scale_x_continuous(breaks=seq(0,max(diamonds$price), 1500))
当我将label=..count..
更改为..price..
时,我
FUN中的错误(X [[i]],...):对象'价格'找不到
我怎样才能将price
值放在每个直方图之上?
提前感谢!
答案 0 :(得分:0)
这是一种拼凑在一起的。我不知道如何为像平均值或中位数这样的函数重新定义..count..
特殊变量之类的东西。相反,我计算了每个区间内的价格均值,然后annotate
- d。我选择不把平均价格放在标杆之上,因为这会向读者说错误,这些是重要的,但它们不是。
library(plyr)
mean.cut <- ddply(diamonds, .(cut(price,seq(0,max(diamonds$price), 1500))),
summarize, v=mean(price))
ggplot(diamonds) +geom_histogram(aes(x=price,fill = cut ), binwidth=1500,
colour="grey20", lwd=0.2) +
scale_x_continuous(breaks=seq(0,max(diamonds$price), 1500))+
annotate("text", x=seq(0,max(diamonds$price), 1500), y=mean.cut$v,
label=round(mean.cut$v,0))
我玩了一下hte价格值的格式,并喜欢这个代码用于我尝试的各种选项的标签:
label=sprintf(" $%-5s", round(mean.cut$v,-1) )