gpt4 book ai didi

r - 如何用相对于每个方面的百分比绘制多面直方图(不是条形图)?

转载 作者:行者123 更新时间:2023-12-01 04:39:43 25 4
gpt4 key购买 nike

虽然有几篇关于如何在条形图的每个方面使用缩放百分比的 SO 帖子,但我没有看到任何显示如何在直方图中执行此操作的帖子。有可能这样做吗?

以下是我研究的两个帖子:

所以帖子 1:Obtaining Percent Scales Reflective of Individual Facets with ggplot2这篇文章的最后一个答案表明解决方案不再适用于较新版本的 ggplot2 并建议使用 stat_count() 但没有给出示例。

SO post2:percentage on y lab in a faceted ggplot barchart?

以下代码创建了一个直方图,其百分比在所有方面(即所有条形总和为 100%)而不是在每个方面内缩放。

ggplot(iris, aes(Sepal.Width, y=(..count..)/sum(..count..))) + geom_histogram(bins=2) +
facet_grid(~Species) + scale_y_continuous(labels = scales::percent)

Histogram

有没有办法在每个方面进行缩放?如果不是,转换为条形图的有效策略是什么?如果我必须走那条路,我可以使用 cut()创建 bin 指标因子,然后计算每个层面变量级别内的 bin 频率(使用 dplyr::count() ?),然后使用 geom_bar() .好像很纠结我怀疑有一个 geom_histogram()解决方案。

感谢您的任何想法...

最佳答案

@aosmith 指出其中一篇研究帖子中的一个答案使用了 ..PANEL.. 内部变量。根据该建议,下面的更新代码确实有效,尽管使用了更复杂的 y 映射。

ggplot(iris, aes(Sepal.Width, y=(..count..)/tapply(..count..,..PANEL..,sum)[..PANEL..])) +
geom_histogram(bins=2) + facet_grid(~Species) +
scale_y_continuous(labels = scales::percent) + labs(y='% within facet')
enter image description here
然而,在 this SO post , Hadley Wickham 建议不要以这种方式使用 ..PANEL..(和其他内部变量)。他建议在 ggplot 之外进行聚合。因此,问题的答案可能是您可以使用故意未记录的“..PANEL..”变量,但要注意使用这种类型的功能的风险,新版本中很容易在没有解释的情况下进行更改。
也许有人可以请求一个功能,将面的密度缩放控制为“整体”、“按列”、“按行”、“按面”。

关于r - 如何用相对于每个方面的百分比绘制多面直方图(不是条形图)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50936177/

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