gpt4 book ai didi

r - ggplot2 : label bar height 中的密度直方图

转载 作者:行者123 更新时间:2023-12-04 11:44:26 27 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Get values and positions to label a ggplot histogram

(2 个回答)


5年前关闭。




我有数据告诉我完成一项任务需要多少分钟:

dat = data.frame(a = c(5.5,7,4,20,4.75,6,5,8.5,10,10.5,13.5,14,11))

我用 ggplot2 包绘制了数据的密度直方图:
p=ggplot(dat, aes(x=a)) + geom_histogram(aes(y=..density..),breaks = seq(4,20,by=2))+xlab("Required Solving Time")

现在我想在它上面添加每个密度条的高度标签。我试图达到这个
通过添加 +geom_text(label=..density..) .
这将返回错误

object '..density..' not found



然而。有谁知道 geom_text()的输入是什么功能有
在我的情况下获得这些标签?

没有 geom_text() 的解决方案也很好,但我更喜欢
留在 ggplot2 包中。

最佳答案

您可以使用 stat_bin 标记条形图与 geom="text" . stat_bin计算计数,我们使用 ..density.. 将其转换为密度,正如geom_histogram .但是通过设置geom="text" ,我们将这些密度值显示为文本。我们还需要设置相同的 breaksgeom_histogramstat_bin以便密度值匹配。我通过乘以 ..density.. 将文本标签放在栏的中间。由标签中的 0.5。但是,您当然可以随意调整。

breaks = seq(4,20,by=2)  

ggplot(dat, aes(x=a)) +
geom_histogram(aes(y=..density..), breaks = breaks) +
stat_bin(geom="text", aes(label=round(..density..,2), y=0.5*..density..),
breaks=breaks, colour="white") +
xlab("Required Solving Time")

enter image description here

要获取条形上方的标签,您可以使用:
ggplot(dat, aes(x=a)) + 
geom_histogram(aes(y=..density..), breaks = breaks) +
stat_bin(geom="text", aes(label=round(..density..,2), y=..density..),
breaks=breaks, vjust = -1) +
xlab("Required Solving Time")

enter image description here

关于r - ggplot2 : label bar height 中的密度直方图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37091322/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com