gpt4 book ai didi

r - 如何在百分比条形图上方添加百分比或计数标签?

转载 作者:行者123 更新时间:2023-12-03 08:53:08 25 4
gpt4 key购买 nike

使用ggplot2 1.0.0,我按照以下文章中的说明进行操作,以了解如何绘制跨因素的百分比条形图:

Sum percentages for each facet - respect "fill"

test <- data.frame(
test1 = sample(letters[1:2], 100, replace = TRUE),
test2 = sample(letters[3:8], 100, replace = TRUE)
)
library(ggplot2)
library(scales)
ggplot(test, aes(x= test2, group = test1)) +
geom_bar(aes(y = ..density.., fill = factor(..x..))) +
facet_grid(~test1) +
scale_y_continuous(labels=percent)

但是,使用 geom_text时,我似乎无法获得总数的标签或每个条形图上方的百分比。

上面的代码还能保留y轴百分比的正确补充是什么?

最佳答案

停留在ggplot中,您可以尝试

ggplot(test, aes(x= test2,  group=test1)) + 
geom_bar(aes(y = ..density.., fill = factor(..x..))) +
geom_text(aes( label = format(100*..density.., digits=2, drop0trailing=TRUE),
y= ..density.. ), stat= "bin", vjust = -.5) +
facet_grid(~test1) +
scale_y_continuous(labels=percent)

对于计数,请在geom_bar和geom_text中将..density ..更改为..count ..

ggplot 2.x的 更新
ggplot2 2.0ggplot进行了许多更改,其中包括在更改 stat ggplot 2.0.0使用的默认 geom_bar函数时破坏了此代码的原始版本的更改。现在,它不再调用 stat_bin来对数据进行装箱,而是调用 stat_count对每个位置的观测值进行计数。 stat_count返回 prop而不是 density作为该位置计数的比例。

下面的代码已被修改以与 ggplot2的新版本一起使用。我提供了两个版本,两个版本都显示了条形的高度(以计数的百分比表示)。第一个显示条形上方的计数的百分比,第二个显示条形上方的计数。我还为y轴和图例添加了标签。
  library(ggplot2)
library(scales)
#
# Displays bar heights as percents with percentages above bars
#
ggplot(test, aes(x= test2, group=test1)) +
geom_bar(aes(y = ..prop.., fill = factor(..x..)), stat="count") +
geom_text(aes( label = scales::percent(..prop..),
y= ..prop.. ), stat= "count", vjust = -.5) +
labs(y = "Percent", fill="test2") +
facet_grid(~test1) +
scale_y_continuous(labels=percent)
#
# Displays bar heights as percents with counts above bars
#
ggplot(test, aes(x= test2, group=test1)) +
geom_bar(aes(y = ..prop.., fill = factor(..x..)), stat="count") +
geom_text(aes(label = ..count.., y= ..prop..), stat= "count", vjust = -.5) +
labs(y = "Percent", fill="test2") +
facet_grid(~test1) +
scale_y_continuous(labels=percent)

第一个版本的图如下所示。

enter image description here

关于r - 如何在百分比条形图上方添加百分比或计数标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29869862/

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