Модифицированный участок sankey с несколькими ребрами между узлами
Я хотел бы сделать модифицированный график Санки в R, где можно иметь несколько ребер между узлами, чтобы идентифицировать разные пути. Это немного сложно объяснить, поэтому я сделал образец изображения в ppt:)
Я знаю, что это некрасиво:), но я хочу сказать, что я хотел бы быть в состоянии сделать ребра между A и B1 и четко указать, какое ребро принадлежит пути, идущему к C1 и C2.
Я попробовал sankeyPlot из rCharts-пакетов, однако смог получить только два столбца узлов.
Я также попробовал riverplot-пакеты, но здесь я не могу сделать два ребра между одинаковыми узлами.
1 ответ
Вы можете использовать DiagrammeR с графом графиков и надписями таблиц HTML:
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 и graphviz/node.
Санки версия
Вы можете использовать диаграмму Санки, но вы должны разделить свой узел 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)
)