d3network包

code{white-space: pre;}

pre:not([class]) {
background-color: white;
}

.main-container {
max-width: 940px;
margin-left: auto;
margin-right: auto;
}
code {
color: inherit;
background-color: rgba(0, 0, 0, 0.04);
}
img {
max-width:100%;
height: auto;
}
h1 {
font-size: 34px;
}
h1.title {
font-size: 38px;
}
h2 {
font-size: 30px;
}
h3 {
font-size: 24px;
}
h4 {
font-size: 18px;
}
h5 {
font-size: 16px;
}
h6 {
font-size: 12px;
}
.tabbed-pane {
padding-top: 12px;
}
button.code-folding-btn:focus {
outline: none;
}

d3network包

ShangFR

2016年5月6日

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/

反馈与建议

最新文章

  1. 在web.config里使用configSource分隔各类配置
  2. Unity3d之Http通讯GET方法和POST方法
  3. Struts2中的get、set方法作用:
  4. ecshop开发日志之支付插件开发
  5. 你所有不知的margin属性
  6. docker-compose.yml 配置文件详解及项目发布
  7. 【公众号系列】SAP的新零售
  8. input 各种限制
  9. 《转》:JVM性能调优监控工具jps、jstack、jmap、jhat、jstat、hprof使用详解
  10. MT【204】离散型最值
  11. 最近关于mysql的造型,binlog使用,以及阿里云上线数据处理错误导致被处罚的思考
  12. 如何获取select选中的值
  13. PC初始化
  14. 【转】H.264 SVC
  15. 关于 error C2039: “create”: 不是“cocos2d::GLView”的成员的解决方法
  16. 运维不得不知的 Linux 性能监控、测试、优化工具
  17. 深入理解Java类加载器(1)
  18. AJAX 状态值与状态码详解
  19. ballerina 学习二 ballerina 命令参数
  20. DiscuzX 3. 3搭建和学习

热门文章

  1. [CS231n-CNN] Backpropagation(反向传播算法)
  2. 获取当前 Python 版本
  3. Could not load file or assembly &#39;System.Core, Version=2.0.5.0 和autofac冲突的问题
  4. 将XmlDocument转换成XDocument
  5. Java Garbage Collection Basics--转载
  6. Mysql 修改密码及重置密码方法
  7. Microsoft OneScript 团队发布的最新一版在 SQL Server Management Studio 中运行的脚本,可以帮助我们获取更详细的版本信息。
  8. ASP.NET MVC 使用 IOC框架 AutoFac 自动释放数据库资源
  9. Linux的Cgroup
  10. 如何彻底的卸载和删除Windows service