R语言可视化作图笔记(6)图形视觉化

图形视觉化(Graph Visualization)

网络可视化(Network Visualization)

以下是马德里三一一连环爆炸案参与者制作的关系网,数据来自两个重要变量,nodes包含了所有的序列(id),人名(label)和组别(group),edges包含了所有的连线的起始(from),终点(to),线粗(value)

> head(nodes)
  id group            label
1  1     1    Jamal Zougam 
2  2     0  Mohamed Bekkali
3  3     1   Mohamed Chaoui
4  4     0      Vinay Kholy
5  5     0    Suresh Kumar 
6  6     1 Mohamed Chedadi
 
> # edges 中存在重复的连线
> # 一是因为懒,二是节点的size数值区别更大(自动*2)

> head(edges)
  from to value
1    1  2     1
2    1  3     3
3    1  4     1
4    1  5     1
5    1  6     1
6    1  7     4

借助visNetworkigraph生成网络图,节点的连线数为节点的大小(nodes里的value列)

library(visNetwork)
library(igraph)

 # 关系变量(?)
g <- graph_from_data_frame(edges, directed = FALSE, vertices = nodes)

 # 节点大小
value <- as.numeric(strength(g))
nodes$value <- value

visNetwork(nodes, edges, main = "Terrorist connections") %>%
  # 优化斥力是网络更好看
  visPhysics(solver="repulsion") %>% 
  visLegend(main = "Bombing group") %>% 
  # 选择(点击)某节点后生成网络的距离为1
  visOptions(highlightNearest = list(enabled =TRUE, degree = 1),
             nodesIdSelection = TRUE)

在这里插入图片描述
在左上角选择或者点击对应的节点,会形成以此点为核心距离为1的关系网
在这里插入图片描述

优化边介数来计算分类,再以此分类为组别重新绘图

ceb <- cluster_edge_betweenness(g) 

# 将结果赋予原nodes里的group列
nodes$group <- ceb$membership
visNetwork(nodes,edges, main = "Terrorist connections")%>%
  visPhysics(solver = "repulsion") %>%
  visOptions(highlightNearest = list(enabled =TRUE, degree = 1),
             nodesIdSelection = TRUE)

在这里插入图片描述
也可绘制igraph样貌的网络图

visNetwork(nodes,edges, main = "Terrorist connections")%>%
  visIgraphLayout() %>%
  visPhysics(solver = "repulsion") 

【没有了Q弹的感觉,但图生成更快,棱角分明】
在这里插入图片描述

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值