networkD3包

力导向网络图

这种图采用物理上的弹簧模型,将节点之间想象成是用弹簧连接的,然后把这些用弹簧连接的节点扔到桌面上,让这些弹簧自己弹啊弹,弹啊弹,最后总能停下来,达到一个平衡状态。这个状态下的节点连接图,能力最小,线和线之间的交叉最小。这种方法的学名叫spring-embedder 或者 force-directed。

拖动中间的图里的任意节点,整个网络就会被拖动,并达到新的平衡位置。
从图里,我们可以大致看出不同的群体,群体里的人关系紧密,而不同群体之间的关系比较松散。群体分析也是网络数据可视化的一个主要目的。

知识图谱,也称为科学知识图谱,它通过将应用数学、图形学、信息可视化技术、信息科学等学科的理论与方法与计量学引文分析、共现分析等方法结合,并利用可视化的图谱形象地展示学科的核心结构、发展历史、前沿领域以及整体知识架构达到多学科融合目的的现代理论。为学科研究提供切实的、有价值的参考。

今天我们借助networkD3包里面的simpleNetwork 函数来绘制一个类似CSDN微信开发的知识图谱,效果图如下:



首先我们先来分析一下这张图,图里面的微信支付——微信支付小程序——小程序,等这些,它们之间本不需要连线,但这里是为了美观好看,才有这些连线,但实际却没有什么意义。使用simpleNetwork 函数不能绘制类似微信支付——微信支付 的这种关系。我把这些数据整理写在了一个TXT文件里面,截图如下。



接下来我们分析一下 simpleNetwork,它的原型如下:

simpleNetwork(Data, Source = NULL, Target = NULL, height = NULL,
  width = NULL, linkDistance = 50, charge = -200, fontSize = 7,
  fontFamily = "serif", linkColour = "#666", nodeColour = "#3182bd",
  nodeClickColour = "#E34A33", textColour = "#3182bd", opacity = 0.6,
  zoom = F)

参数解释如下:

Data

数据源

Source

默认为数据框的第一行,网络源变量

Target

默认为数据框的第二行,网络源目标变量

height

设置图像所占页面大小

width

设置图像所占页面大小

linkDistance

中间连线的长度,默认为50,数值越大,连线越长

charge

点与点之间的吸引力,值越大,点与点之间距离越近,值越小,点与点之间距离越大

fontSize

节点名称字体大小

fontFamily

设置标签字体

linkColour

连线颜色 

nodeColour

节点颜色

nodeClickColour

点击后颜色

textColour

字体颜色

opacity

opacity=0时,透明度为0,看不到图像,最大值为1,超过1也默认为1

zoom

逻辑值为true是可以缩放,false时无法缩放



我想这里有了上面这个参数表,大家肯定就会对simpleNetwork这个函数十分了解了。首先我们来一个最简单。


data<-read.table("network.txt",header = FALSE, sep = "")#读取数据
simpleNetwork(data)



现在我们就多加一些参数,然后看一下整体效果。


simpleNetwork(data,#数据
       fontFamily="华文行楷",#字体设置
       linkColour="#B23AEE",#连线颜色
       nodeColour="#00CD66",#节点颜色
       textColour="#0000FF",#文本颜色
       charge = -550,#节点之间的引力
       opacity=0.9,#透明度
       zoom=TRUE #可缩放
)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值