zoukankan      html  css  js  c++  java
  • d3network包

    d3network包

    R d3network包

    通过Christopher Gandrud编写的d3network包可以轻松创建基于Htmlwidgets框架的网络图。它目前支持三种类型的网络图:

    • 力导向图,可以显示复杂的网络划分关系;
    • 桑基图(Sankeydiagram),利于展现分类维度间的相关性,以流的形式呈现共享同一类别的元素数量。特别适合表达集群的发展,比如展示特定群体的人数分布等;
    • Reingold-Tilford树型图,可以把一个树形结构的数据,用不重叠、紧凑、分层的形式展示出来。

    下面通过例子展示这三种类型的网络图。

    力导向图

    首先载入networkD3包,然后创建src源、target目标两个向量,整合成数据框networkData,最后就可以通过simpleNetwork函数画出一个简单的力导向图(见例1);此外,也可以通过自有数据框MisLinks、MisNodes创建复杂一点的力导向图(见例2)。

    #例1
    # 载入软件包
    library(networkD3)
    

    创建数据

    src <- c("A", "A", "A", "A",
    "B", "B", "C", "C", "D")
    target <- c("B", "C", "D", "J",
    "E", "F", "G", "H", "I")
    networkData <- data.frame(src, target, zoom = TRUE)

    画图

    simpleNetwork(networkData)

    #例2
    # 直接载入数据包(数据框)
    data(MisLinks)
    data(MisNodes)
    

    画图

    forceNetwork(Links = MisLinks, Nodes = MisNodes,
    Source = "source", Target = "target",
    Value = "value", NodeID = "name",
    Group = "group", opacity = 0.8, zoom = TRUE)

    桑基图(Sankeydiagram)

    桑基图(Sankeydiagram),利于展现分类维度间的相关性,以流的形式呈现共享同一类别的元素数量。特别适合表达集群的发展,比如展示特定群体的人数分布等;可以直接使用网上下载的JSON数据创建桑基图,例子如下:

    Reingold-Tilford树型图

    RT树型图可以把一个树形结构的数据,用不重叠、紧凑、分层的形式展示出来。

    URL <- paste0(
            "https://cdn.rawgit.com/christophergandrud/networkD3/",
            "master/JSONdata//flare.json")
    

    格式转化

    Flare <- jsonlite::fromJSON(URL, simplifyDataFrame = FALSE)

    使用部分数据1-3

    Flare(children = Flare)children[1:3]

    环形的RT树,如下图:

    radialNetwork(List = Flare, fontSize = 10, opacity = 0.9)

    #直接生成一棵从左到右的树,如下图:
    diagonalNetwork(List = Flare, fontSize = 10, opacity = 0.9)

    详细资料,参见http://christophergandrud.github.io/networkD3/

    反馈与建议

  • 相关阅读:
    Nacos 1.3.0版本部署连接mysql 8+
    Java Certificate证书问题
    UIKit之浅析UIButton
    Xcode Coule not launch "aaa" press launch failed:timed out waiting for app launch
    Cocos2d-x 安装教程for mac(Xcode)
    关于继承UITableViewController若干问题
    Table的分割线偏移量设置 及其 UIEdgeInset详解
    retain、strong、weak、assign区别
    iOS 使用xib创建cell的两种初始化方式
    No architectures to compile for (ONLY_ACTIVE_ARCH=YES, active arch=x86_64, VALID_ARCHS=armv7 armv7s)
  • 原文地址:https://www.cnblogs.com/shangfr/p/5417054.html
Copyright © 2011-2022 走看看