今天咱们来绘制一个知识图谱怎么样?
作者:王亨 ,R语言中文社区专栏作者,跟着菜鸟一起一步步学习R语言,争做R语言高手。
个人公众号:跟着菜鸟一起学R语言(微信ID:learn_R)
知识图谱,也称为科学知识图谱,它通过将应用数学、图形学、信息可视化技术、信息科学等学科的理论与方法与计量学引文分析、共现分析等方法结合,并利用可视化的图谱形象地展示学科的核心结构、发展历史、前沿领域以及整体知识架构达到多学科融合目的的现代理论。为学科研究提供切实的、有价值的参考。
今天我们借助networkD3包里面的simpleNetwork 函数来绘制一个类似CSDN微信开发的知识图谱,效果图如下:
首先我们先来分析一下这张图,图里面的微信支付——微信支付,小程序——小程序,等这些,它们之间本不需要连线,但这里是为了美观好看,才有这些连线,但实际却没有什么意义。使用simpleNetwork 函数不能绘制类似微信支付——微信支付 的这种关系。我把这些数据整理写在了一个TXT文件里面,截图如下。
接下来我们分析一下 simpleNetwork,它的原型如下:
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这个函数十分了解了。首先我们来一个最简单。
simpleNetwork(data)
结果如下:
现在我们就多加一些参数,然后看一下整体效果。
fontFamily="华文行楷",#字体设置
linkColour="#B23AEE",#连线颜色
nodeColour="#00CD66",#节点颜色
textColour="#0000FF",#文本颜色
charge = -550,#节点之间的引力
opacity=0.9,#透明度
zoom=TRUE #可缩放
)
结果如下:
至于其他参数大家可以自己去试试。公众号里面回复 simpleNetwork,即可获取这次试用到的数据以及 RGB颜色查询对照表。
微信回复关键字即可学习
回复 R R语言快速入门免费视频
回复 统计 统计方法及其在R中的实现
回复 用户画像 民生银行客户画像搭建与应用
回复 大数据 大数据系列免费视频教程
回复 可视化 利用R语言做数据可视化
回复 数据挖掘 数据挖掘算法原理解释与应用
回复 机器学习 R&Python机器学习入门