我将使用ggplot中的钻石数据集来说明我的观点,我想绘制一个直方图的价格,但我想显示每个切割的每个切割的计数这是我的代码
ggplot(aes(x = price ) , data = diamonds_df) +
geom_histogram(aes(fill = cut , binwidth = 1500)) +
stat_bin(binwidth= 1500, geom="text", aes(label=..count..) ,
vjust = -1) +
scale_x_continuous(breaks = seq(0 , max(stores_1_5$Weekly_Sales) , 1500 )
, labels = comma)
这是我目前的情节
但是当你看到数字显示每个箱子上所有切口的数量时,我想显示每个箱子上每个切口的数量 .
如果我能够配置Y轴而不是在步骤5000显示数字我可以手动配置的其他东西也是一个奖励点
2 回答
ggplot2 2.x的更新
您现在可以将标签置于堆叠条形图中,而无需使用
position=position_stack(vjust=0.5)
预先汇总数据 . 例如:原始答案
您可以通过将
cut
作为group
美学添加到stat_bin
来获取cut
的每个值的计数 . 我还在aes
之外移动了binwidth
,这导致原始代码中的binwidth
被忽略:上面代码的一个问题是我不知道如何在
stat_bin
内做到这一点,或者甚至可能 . 乘以0.8(或其他)将每个标签移动不同的相对量 . 因此,为了使标签居中,我在下面的代码中为标签创建了一个单独的数据框:要在y轴上配置中断,只需添加
scale_y_continuous(breaks=seq(0,20000,2000))
或您想要的任何中断 .现在使用GGPLOT 2.2.0 position_stack选项使其更容易