修改后的桑基图,节点之间有几条边
modified sankey Plot with several edges between nodes
我想在 R 中制作一个经过修改的桑基图,其中节点之间可能有多个边,以识别不同的路径。有点难解释所以我在ppt中制作了示例图片:)
我知道它很丑 :) 但我的意思是我希望能够在 A 和 B1 之间形成边,并清楚地指出哪条边属于通往 C1 和 C2 的路径。
我尝试了 rCharts 包中的 sankeyPlot,但是我只能得到两列节点。
我也试过 riverplot-packages,但是这里我不能在相同的节点之间创建两条边。
您可以将 DiagrammeR 与 graphviz 图形和 HTML table 标签一起使用:
library(DiagrammeR)
g1 <-
'digraph structs {
B1_node [label=<
<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
<TR><TD PORT="One">B One</TD></TR>
<TR><TD PORT="Two">B Two</TD></TR>
</TABLE>
> ];
A -> B1_node:One;
A -> B1_node:Two;
A -> B2;
B1_node:One -> C1;
B1_node:Two -> C2;
B2 -> C3;
rankdir=LR
}'
grViz(g1)
请参阅 DiagrammeR/graphviz and graphviz/node shapes 文档。
桑基版本
您可以使用 Sankey 图,但您必须拆分节点 B1:
links <- data.frame(
source = c("A", "A", "B1", "B1", "A", "B1a", "B1b", "B2" ),
target =c("B1", "B1", "B1a", "B1b", "B2", "C1", "C2", "C3"),
value = c(20, 20, 20, 20, 30, 20, 20, 30)
)
我想在 R 中制作一个经过修改的桑基图,其中节点之间可能有多个边,以识别不同的路径。有点难解释所以我在ppt中制作了示例图片:)
我知道它很丑 :) 但我的意思是我希望能够在 A 和 B1 之间形成边,并清楚地指出哪条边属于通往 C1 和 C2 的路径。
我尝试了 rCharts 包中的 sankeyPlot,但是我只能得到两列节点。
我也试过 riverplot-packages,但是这里我不能在相同的节点之间创建两条边。
您可以将 DiagrammeR 与 graphviz 图形和 HTML table 标签一起使用:
library(DiagrammeR)
g1 <-
'digraph structs {
B1_node [label=<
<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
<TR><TD PORT="One">B One</TD></TR>
<TR><TD PORT="Two">B Two</TD></TR>
</TABLE>
> ];
A -> B1_node:One;
A -> B1_node:Two;
A -> B2;
B1_node:One -> C1;
B1_node:Two -> C2;
B2 -> C3;
rankdir=LR
}'
grViz(g1)
请参阅 DiagrammeR/graphviz and graphviz/node shapes 文档。
桑基版本
您可以使用 Sankey 图,但您必须拆分节点 B1:
links <- data.frame(
source = c("A", "A", "B1", "B1", "A", "B1a", "B1b", "B2" ),
target =c("B1", "B1", "B1a", "B1b", "B2", "C1", "C2", "C3"),
value = c(20, 20, 20, 20, 30, 20, 20, 30)
)