gpt4 book ai didi

r - 如何使用 ggalluvial 将百分比值添加到冲积图中的地层?

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

我正在寻找向冲积地 block 添加圆角百分比标签的最便捷方法。以下示例中有 50 种情况。独立于阶段 1 或阶段 2,每个案例都属于 A、B 或 C 组。我想显示每个阶段期间的相对组从属关系。

library(ggplot2)
library(ggalluvial)

df <- data.frame('id' = rep(1:50,2),
'stage' = c(rep(1,50), rep(2,50)),
'group' = sample(c('A','B','C'), 100, replace = TRUE))

ggplot(df,
aes(x = stage, stratum = group, alluvium = id, fill = group)) +
scale_x_discrete(expand = c(.1, .1)) +
geom_flow() +
geom_stratum(alpha = .5)

enter image description here

是否有一种方法可以在不计算初始数据框中的百分比列的情况下向分层(条形段)添加舍入百分比标签(包括“%”)?如果我没有完全弄错的话,geom_text 在这里的工作方式与 geom_bar() 中的工作方式不同。

最佳答案

这个问题的标准ggplot2解决方案是使用“计算美学”。这些美学规范并非来自传递给 ggplot() 的数据,而是来自统计转换(stat_*())的输出,该输出用于渲染图形元素(geom_*())。此输出的列(用户很少看到)称为“计算变量”。 The documentation on this topic受到限制并且有点过时,使用 stat() 而不是 after_stat() 来调用它们。由于 ggalluvial 不支持计算变量,因此 @bencekd 的答案当时是正确的。

截至今天,v0.12.0 已在 CRAN 上发布,并提供计算变量的支持和文档。特别是,可以使用三个计算变量,它们与 stat_bin()stat_count() 使用的同名变量相对应:ncount(n 的加权版本)和 prop(根据 count 计算的轴内比例)。看起来您想要使用 prop,如下所示:

library(ggplot2)
library(scales)
library(ggalluvial)

df <- data.frame('id' = rep(1:50,2),
'stage' = c(rep(1,50), rep(2,50)),
'group' = sample(c('A','B','C'), 100, replace = TRUE))

ggplot(df,
aes(x = stage, stratum = group, alluvium = id, fill = group)) +
scale_x_discrete(expand = c(.1, .1)) +
geom_flow() +
geom_stratum(alpha = .5) +
geom_text(stat = "stratum",
aes(label = percent(after_stat(prop), accuracy = .1)))

reprex package于2020年7月14日创建(v0.3.0)

关于r - 如何使用 ggalluvial 将百分比值添加到冲积图中的地层?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60725388/

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