модифицированный участок Санки с несколькими ребрами между узлами

Я хотел бы сделать модифицированный график Санки в R, где можно иметь несколько ребер между узлами, чтобы идентифицировать разные пути. Это немного сложно объяснить, поэтому я сделал образец картинки в ppt :)

введите здесь описание изображения

Я знаю, что это уродливо :), но я хочу сказать, что я хотел бы иметь возможность переходить к ребрам между A и B1 и четко указывать, какое ребро принадлежит пути, ведущему к C1 и C2.

Я попробовал sankeyPlot из пакетов rCharts, но смог получить только два столбца узлов.

Я также пробовал пакеты riverplot, но здесь я не могу сделать два ребра между одними и теми же узлами.


person user2335015    schedule 03.10.2015    source источник


Ответы (1)


Вы можете использовать DiagrammeR с графиками graphviz и таблицами 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 shape.

Санки версия

Вы можете использовать диаграмму Санки, но вам нужно разделить узел 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)
)

введите здесь описание изображения

person bergant    schedule 03.10.2015
comment
спасибо, я думаю, я выберу версию sankey, а затем, возможно, воспользуюсь иллюстратором, чтобы превратить ее в один узел :) - person user2335015; 03.10.2015