我正在尝试显示包含两个离散变量和1个连续变量的个体的面板数据。在这种情况下,我有不同的门(离散1),并且不同类别的分类单元(离散2)嵌套在不同的门中。我也有不同类别的相对丰富(连续的)。在8个时间点收集了此数据,每个时间点采样了10个人。
我想要:
堆叠的条形图(多个水平分布的列) 显示堆积的门和它们的丰度。
连接到门垂直细分的冲积流
是每个门中的类,具有流的宽度
代表相对丰度。
以连续时间加权的时间段显示“流量”
每个时间段的变量。
x轴是不同的时间点(lodes)。
定义here。
我已经制作了这些虚假数据来证明我的想法:
set.seed(42)
individual <- rep(LETTERS[1:10],each=2)
timeperiod <- paste0("time_",rep(1:2,10))
Phylum <- factor(paste0("Phlyum_",sample(letters[1:3],20, replace=T)))
Class <- factor(paste0("Class_",sample(1:3,20, replace=T)))
continuouschoice <- ceiling(runif(20, 0, 100))
d <- data.frame(individual, timeperiod, Phylum, Class, continuouschoice)
d
library(ggalluvial)
ggplot(
data = d,
aes(
x = timeperiod,
stratum = Phylum,
alluvium = individual,
weight = continuouschoice
)
) +
geom_stratum(aes(fill = Phylum)) +
geom_flow(aes(fill=Class))
但是,当我尝试将此示例调整为适合自己的数据时,流程不会出现。我认为这是因为在示例数据中,每个类别都位于每个门中。但是,根据我自己的数据,每个门都有独特的类别。
有人可以帮我修改此更改的ggplot调用吗?
从此处绘制的示例:Weighted sankey / alluvial diagram for visualizing discrete and continuous panel data?