Построение диаграммы Sankey: как изменить порядок узлов по умолчанию
Я создал диаграмму Санки, используя пакет plotly
.
Насколько я вижу, порядок узлов по умолчанию в основном определяется значением. Однако я хочу алфавитный порядок, не перемещая узлы вручную с помощью мышиного препарата.
Могу ли я изменить порядок по умолчанию с помощью R?
Любая помощь будет принята с благодарностью. Ниже приведен пример кода и результаты:
node_label <- c("x1_1", "x1_2", "x2_1", "x2_2")
link_source <- c(0, 0, 1, 1)
link_target <- c(2, 3, 2, 3)
link_value <- c(2, 5, 1, 3)
# when link_value <- c(5, 2, 1, 3), the order is changed.
plotly::plot_ly(
type = "sankey",
domain = list(x = c(0,1), y = c(0,1)),
node = list(label = node_label),
link = list(
source = link_source,
target = link_target,
value = link_value))
![enter image description here]()
![enter image description here]()
Ответы
Ответ 1
это может стоить проверить, но я нашел это полезным в моем случае (где диаграмма была немного более сложной).
Если при организации меток данных убедитесь, что список упорядочен в том порядке, в котором вы хотите его отображать.
Например, если есть узел, который должен прийти рано (слева), просто вставьте его до остальной части
labelList.insert(0, labelList.pop(labelList.index(first_node_label)))
Затем подключите labelList
к go
, и вы должны иметь некоторый (хотя и не абсолютный) контроль над структурой.