Можно ли переставить ссылки так, чтобы соответствующие ссылки были связаны друг с другом? - PullRequest
1 голос
/ 06 ноября 2019

Я бы хотел создать сюжет Санки с заговором. Мои данные структурированы таким образом, что поток идет слева направо от самого участка. Каждый поток имеет одно и то же значение.

Проблема в том, что в настоящее время я не могу переставить все потоки на графике так, чтобы каждое звено между узлами было связано с его предыдущими или следующими узлами. Это делает поток не непрерывным, поскольку поток иногда «прерывается» и снова становится непрерывным в другой позиции.

Я хотел бы иметь график, на котором каждый поток, от его первого узла до его последнего узла, выровнентак что вы можете легко следовать этому потоку.

Я уже пытался переставить узлы вручную. Это привело к улучшению, но не решило проблему полностью.

Это минимальный пример моего кода

library(plotly)

p <-plot_ly(
  type='sankey',
  alpha = 0.1,
  node = list(
    pad = 15,
    thickness = 20,
    line = list(
      color = "black",
      width = 0.5
    ),
    label = c("A1", "A2", "B1", "C1","D3" ,"D2", "D1"),
    color = 'rgba(255,255,255,0.8)'
  ),
  link = list(
    source = c(0,1,0,2,2,2,3,3,3),
    target = c(2,2,2,3,3,3,4,5,6),
    value = c(8,4,1,1,8,4,1,4,8),
    color = c('rgba(189,10,10,0.3)','rgba(0,0,0,0.3)', 'rgba(3,189,5,0.3)',
              'rgba(3,189,5,0.3)','rgba(189,10,10,0.3)', 'rgba(0,0,0,0.3)',
              'rgba(3,189,5,0.3)', 'rgba(0,0,0,0.3)', 'rgba(189,10,10,0.3)'
    )
  )
)

p

Этот код создает этот график: sankey_plot

Когда я переставляю узел вручную, я получаю это: sankey_plot_rearranged

Это близко к тому, что я хочу, но есть возможность в заговоре добиться этого без перестановки узлавручную? Может быть, есть еще один программный подход, которым любой может поделиться?

Спасибо!

...