13.23 网络图

gephi 探索和可视化网络图 GraphViz

# library(igraph)

13.23.1 networkD3

networkD3 D3 非常适合绘制网络图,如网络、树状、桑基图

library(networkD3)
data(MisLinks, MisNodes) # 加载数据
head(MisLinks) # 边
##   source target value
## 1      1      0     1
## 2      2      0     8
## 3      3      0    10
## 4      3      2     6
## 5      4      0     1
## 6      5      0     1
head(MisNodes) # 节点
##              name group size
## 1          Myriel     1   15
## 2        Napoleon     1   20
## 3 Mlle.Baptistine     1   23
## 4    Mme.Magloire     1   30
## 5    CountessdeLo     1   11
## 6        Geborand     1    9

构造网络图

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

13.23.2 visNetwork

visNetwork 使用 vis-network.js 库绘制网络关系图 https://datastorm-open.github.io/visNetwork

library(visNetwork)

调用函数 visTree() 可视化分类模型结果

library(rpart)
library(sparkline) # 函数 visTree 需要导入 sparkline 包
res <- rpart(Species~., data=iris)
visTree(res, main = "鸢尾花分类树", width = "100%")

节点、边的属性都可以映射数据指标

13.23.3 r2d3

D3 是非常流行的 JavaScript 库,r2d3 提供了 R 接口

library(r2d3)

更加具体的使用介绍,一个复杂的案例,如何从简单配置过来,以条形图为例, D3 是一个相当强大且成熟的库,提供的案例功能要覆盖 plotly

r2d3 提供了两个样例 JS 库 baranims.jsbarchart.js

list.files(system.file("examples/", package = "r2d3"))
## [1] "baranims.js" "barchart.js"
library(r2d3)
r2d3(
  data = c(0.3, 0.6, 0.8, 0.95, 0.40, 0.20),
  script = system.file("examples/barchart.js", package = "r2d3")
)

图 13.19: D3 图形

r2d3(
  data = c(0.3, 0.6, 0.8, 0.95, 0.40, 0.20),
  script = system.file("examples/baranims.js", package = "r2d3")
)

图 13.20: D3 图形