- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在寻找向冲积地 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)
是否有一种方法可以在不计算初始数据框中的百分比列的情况下向分层(条形段)添加舍入百分比标签(包括“%”)?如果我没有完全弄错的话,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()
使用的同名变量相对应:n
、count
(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/
如何将白色框中的标签名称添加到数据框中的 ggalluvial sankey 图上的三个轴中的每一个? (见图) “国家”列包含多个国家的观察结果。在下面的示例中,我关注的是带有“IE”标签的爱尔兰。
我正在寻找向冲积地 block 添加圆角百分比标签的最便捷方法。以下示例中有 50 种情况。独立于阶段 1 或阶段 2,每个案例都属于 A、B 或 C 组。我想显示每个阶段期间的相对组从属关系。 li
我用 ggalluvial与 ggplot2 ,不过,我希望能够在不附加 ggalluvial 的情况下生成相同的图但仅指定其用途 ggalluvial:: .如果没有附加,我会收到以下错误:Erro
我有治疗前(共识)和治疗后(单一药物)患者集群的数据表,我想展示患者在治疗前后如何流入不同的集群。在这种情况下,实际的簇数并没有多大意义,重要的是对于大多数患者来说,治疗前聚集在一起在治疗后也会聚集在
我是一名优秀的程序员,十分优秀!