jmj*_*mjr 4 sorting r shiny sankey-diagram networkd3
我有一个简单的sankey图,使用networkD3一个闪亮的应用程序内的包生成.如何source和/或target节点排序?
正如您在MWE中看到的那样,默认情况下,源节点(A,B,C,D,E)和目标节点(V,W,X,Y,Z)都没有排序.至少,排序对我来说是不可理解的.
码:
library("shiny")
library("networkD3")
ui <- fluidPage(
  column(3),
  column(6, sankeyNetworkOutput("mySankeyD")),
  column(3)
)
server <- function(input, output) {
  output$mySankeyD <- renderSankeyNetwork({
    myDf <- list(
      nodes=data.frame(name=c( "A", "B", "C", "D", "E",
                               "V", "W", "X", "Y", "Z")),
      links=data.frame(source=as.integer(c(0, 1, 2, 3, 3, 4, 4)),
                       target=as.integer(c(7, 6, 7, 8, 7, 5, 9)),
                       value =           c(1, 4, 1, 5, 1, 5, 3)
      )
    )
    sankeyNetwork(Links = myDf$links, Nodes = myDf$nodes, Source = "source",
                  Target = "target", Value = "value", NodeID = "name",
                  units = "TWh", fontSize = 25, nodeWidth = 30, fontFamily = "sans-serif", iterations = 30)
  })
}
shinyApp(ui, server)
Run Code Online (Sandbox Code Playgroud)
如何sankeyNetwork()确定节点的顺序?是否可以按字母顺序对它们进行排序?
我想要排序源节点,如果可能的话还要排序目标节点.
编辑 正如@ emilliman5在评论中指出的那样,无法手动对节点进行排序.
那么,是否有其他R包来生成允许对节点进行排序的sankey图?如果是,怎么办?
jmj*_*mjr 11
设置iterations = 0内部sankeyNetwork()做了伎俩.现在,节点的绘制顺序与节点数据帧中的顺序相同.
library("networkD3")
myDf <- list(
    nodes=data.frame(name=c( "A", "B", "C", "D", "E",
                             "V", "W", "X", "Y", "Z")),
    links=data.frame(source=as.integer(c(0, 1, 2, 3, 3, 4, 4)),
                     target=as.integer(c(7, 6, 7, 8, 7, 5, 9)),
                     value =           c(1, 4, 1, 5, 1, 5, 3)
    )
)
sankeyNetwork(Links = myDf$links, Nodes = myDf$nodes, Source = "source",
              Target = "target", Value = "value", NodeID = "name",
              units = "TWh", fontSize = 25, nodeWidth = 30, 
              fontFamily = "sans-serif", iterations = 0)
Run Code Online (Sandbox Code Playgroud)
        |   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           1938 次  |  
        
|   最近记录:  |