首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R.冲积图:如何对地层进行空间划分?

R.冲积图:如何对地层进行空间划分?
EN

Stack Overflow用户
提问于 2021-04-15 18:11:21
回答 1查看 1K关注 0票数 2

背景

我一直在使用ggplot冲积包装创建一个冲积图(类似于Sankey图)来可视化随时间变化的频率差异以及它们的起源。

举个例子,我创建了一个简单的数据集,包含100个假想的病人,并对新冠肺炎进行筛选。基线时,所有患者新冠肺炎均为阴性。假设1周后,所有患者都再次进行检测:现在,30例阳性,65例阴性,5例结果不确定。再过一周,30例阳性患者仍为阳性,10例由阴性转为阳性,其余均为阴性。

代码语言:javascript
复制
data <- data.frame(analysis = as.factor(rep(c("time0", "time1", "time2"), each = 4)), 
                   freq = rep(c(30, 10, 55, 5), 3), 
                   track = rep(1:4, 3),  
                   response = c("neg","neg","neg","neg", "pos", "neg", "neg", "inconc", "pos", "pos", "neg", "neg"))

#   analysis freq track response
#1     time0   30     1      neg
#2     time0   10     2      neg
#3     time0   55     3      neg
#4     time0    5     4      neg
#5     time1   30     1      pos
#6     time1   10     2      neg
#7     time1   55     3      neg
#8     time1    5     4   inconc
#9     time2   30     1      pos
#10    time2   10     2      pos
#11    time2   55     3      neg
#12    time2    5     4      neg

目标

其目的是创建一个冲积图,使这些患者的“轨迹”(即典故)在一段时间内可视化,从而在两周后可视化结果的起源。类似于:

尝试

我设法完成了这个数字的主要部分:

代码语言:javascript
复制
library(tidyverse)
library(ggalluvial)

ggplot(data, aes(x = analysis, stratum = response, alluvium = track, y = freq, fill = response), col = "black") +
    geom_flow(stat = "alluvium") +
    geom_stratum(alpha = .5) +
    scale_fill_manual(values = c("grey", "green", "red"))

问题

然而,我却不能清楚地分辨出这些阶层。现在,它们都是相邻的,这导致了一个完全“填充”的矩形。

如何在冲积图中使用ggalluvial包( R )中的地层/冲积层空间?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-15 18:24:58

“冲积层一揽子”一书的作者将冲积地定义为:

冲积图是平行的集合图,在这些图中,类在不同的维度上被一致地排列,并且在每个维度上没有间隙地堆叠。

您可能想做一个sankey图,一个合理的包是:格桑基

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67113888

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档