桑基图

作者: 生信编程日常 | 来源:发表于2020-03-25 23:54 被阅读0次

    桑基图(Sankey diagram),即桑基能量分流图,也叫桑基能量平衡图。它是一种特定类型的流程图,图中延伸的分支的宽度对应数据流量的大小,通常应用于能源、材料成分、金融等数据的可视化分析。因1898年Matthew Henry Phineas Riall Sankey绘制的“蒸汽机的能源效率图”而闻名,此后便以其名字命名为“桑基图”。因1898年Matthew Henry Phineas Riall Sankey绘制的“蒸汽机的能源效率图”而闻名,此后便以其名字命名为“桑基图”。

    R语言里面主要用networkD3包的sankeynetwork()函数.
    主要参数为:

    sankeyNetwork(Links, Nodes, Source, Target, Value, NodeID, NodeGroup = NodeID, LinkGroup = NULL, units = "",
      colourScale = JS("d3.scaleOrdinal(d3.schemeCategory20);"), fontSize = 7,
      fontFamily = NULL, nodeWidth = 15, nodePadding = 10, margin = NULL,
      height = NULL, width = NULL, iterations = 32, sinksRight = TRUE)
    

    桑基图的数据结构很简单,只有三列数据信息,起点,终点,权重.
    一个比较好的示例原文链接https://rpubs.com/dmormandy/DV_Sankey
    如下

    library(networkD3)
    
    nodes = data.frame("name" = c("CUBD15_CAULFIELD_SOUTH","CUBDEM1","GMWE15_GLENHUNTLY_WEST","CUBD15_CAULFIELD_SOUTH",
                                  "OMND15_ORMOND","BTED15_BRIGHTON_EAST","GMWEEM2","GMWEEM3","CUBDEM2","CUBDEM3",
                                  "OMNDEM3","BTEDEM3","CUBDEM2","GVAD15_GARDENVALE","HUID15_HURLINGHAM_PARK",
                                  "GVADEM1","HUIDEM3","OMNDEM3","GVADEM3","GVADEM2"))
    
    links = as.data.frame(matrix(c(
    0,1,6861,1,2,5284,1,3,1111,1,4,349,1,5,117,2,6,3368,2,7,1916,3,8,590,3,9,521,4,10,349,5,11,117,0,8,11979,8,13,7616,8,14,1283,
    8,4,1213,8,3,1474,8,5,393,13,15,6866,14,16,1283,4,10,1213,3,9,904,3,1,570,13,18,440,5,11,393,13,19,310),
     byrow = TRUE, ncol = 3))
    
    names(links) = c("source", "target", "value")
    
    sankeyNetwork(Links = links, Nodes = nodes,
     Source = "source", Target = "target",
     Value = "value", NodeID = "name",
     fontSize= 12, nodeWidth = 30)
    
    image.png

    参考:
    https://zhuanlan.zhihu.com/p/26897906
    https://cloud.tencent.com/developer/article/1092599

    欢迎关注公众号~


    生信编程日常

    相关文章

      网友评论

        本文标题:桑基图

        本文链接:https://www.haomeiwen.com/subject/nyuwyhtx.html