【问题标题】:Fixing the order of a Sankey flow graph in R / networkD3 package修复 R / networkD3 包中 Sankey 流图的顺序
【发布时间】:2019-02-13 05:00:11
【问题描述】:

我想使用 Sankey 流程图可视化美国各州的排名变化(即相对顺序的变化)。我正在使用 包并想出了以下内容:

library(dplyr)
library(networkD3)

df <- data_frame(origins=state.name[1:10], destinations=state.name[1:10])
lab <- c(df$origins, df$destinations)
nodes <- data.frame(node=c(0:9), name=lab)
links <- data.frame(source=c(0:9), target=c(10:19), value=rep(1,10))
sankeyNetwork(Links = links, Nodes = nodes, Source = 'source', 
              Target = 'target', Value = 'value', NodeID = 'name')

这个 sn-p 生成以下图表: 美国各州的桑基流程图

我现在可以手动更改相对顺序。但是,我想知道是否可以将订单固定在右侧并放置例如阿拉巴马州排名第三,加利福尼亚州排名第一,等等......

【问题讨论】:

    标签: networkd3 r data-visualization sankey-diagram htmlwidgets networkd3


    【解决方案1】:

    如果您在sankeyNetwork() 中设置iterations = 0,您将有效禁用自动确定节点位置的算法(这是sankeyNetwork() 函数的主要目的),并且节点将按照以下顺序放置它们出现在 Nodes 数据框中。

    library(networkD3)
    
    states <- state.name[1:10]
    ranks <- sample.int(10)
    
    nodes <- data.frame(name = c(states, states[ranks]))
    links <- data.frame(source = 1:10 - 1, target = order(ranks) + 10 - 1, value = 1)
    
    sankeyNetwork(Links = links, Nodes = nodes, Source = 'source', 
                  Target = 'target', Value = 'value', NodeID = 'name',
                  iterations = 0)
    

    【讨论】:

      猜你喜欢
      • 2018-03-18
      • 1970-01-01
      • 2015-11-19
      • 2022-11-02
      • 2022-10-17
      • 2018-07-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多