R x轴上带有时间的过渡(Sankey)绘图

R x轴上带有时间的过渡(Sankey)绘图,r,plot,transition,sankey-diagram,networkd3,R,Plot,Transition,Sankey Diagram,Networkd3,我有一个过渡矩阵,如下所示: 1. A A B 2. B C A 3. A C C 其中,每列表示句点,每行表示代理,每个字母表示状态。我想创建一个绘图,例如显示每个时期从状态到状态的转换。 特工的身份并不重要所以我想要一个这样的图: 我可以使用networkD3或googleVis软件包。然而,由于每个节点的位置是由包内生决定的,所以我不知道如何将时间方面放在X轴上 如有任何帮助或其他可视化建议,我们将不胜感激, 提前多谢了 您可以通过以下方式复制样本数据: tr

我有一个过渡矩阵,如下所示:

1.  A  A  B
2.  B  C  A
3.  A  C  C
其中,每列表示句点,每行表示代理,每个字母表示状态。我想创建一个绘图,例如显示每个时期从状态到状态的转换。 特工的身份并不重要
所以我想要一个这样的图:


我可以使用networkD3或googleVis软件包。然而,由于每个节点的位置是由包内生决定的,所以我不知道如何将时间方面放在X轴上

如有任何帮助或其他可视化建议,我们将不胜感激, 提前多谢了

您可以通过以下方式复制样本数据:

    transitiondata <- data.frame("t1"=c("A","B","A"),
                                 "t2"=c("A","C","C"),
                                 "t3"=c("B","A","C"))

transitiondata来自未来的自动应答:
gg
包,非常适合此任务,是在这段时间开发的。为了使用它,我们需要提供整洁的数据

让我们加载所需的库:

library(ggplot2)
library(ggalluvial)
library(tidyr)
library(dplyr
然后,在我们将数据转换为整洁的格式之前,需要为数据创建标识符。因此,新数据如下所示:

transitiondata$id <- c("id1","id2","id3")
ggplot2
ggplot2
起到了关键作用:

ggplot(transitiondata_tidy,
       aes(x = time, stratum = state, alluvium = id, fill = state, label = state)) +
  geom_stratum() +
  geom_text(stat = "stratum", size = 3) +
  geom_flow(fill = "darkgrey", color = "black")
我们的过渡(Sankey)图已经准备好:

   id time state
1 id1   t1     A
2 id2   t1     B
3 id3   t1     A
4 id1   t2     A
5 id2   t2     C
6 id3   t2     C
7 id1   t3     B
8 id2   t3     A
9 id3   t3     C
ggplot(transitiondata_tidy,
       aes(x = time, stratum = state, alluvium = id, fill = state, label = state)) +
  geom_stratum() +
  geom_text(stat = "stratum", size = 3) +
  geom_flow(fill = "darkgrey", color = "black")