3D动态Network图

《Network Science》这本关于网络科学的简介,是大牛Albert-László Barabási的力作,书中的图美哭,值得一读。下面不妨感受一下。
3D动态Network图_第1张图片
3D动态Network图_第2张图片
3D动态Network图_第3张图片
社交网络,也叫知识图谱,关于它的应用也还是比较多的。
首先是“语义搜索”。因为知识图谱这个词最先是由谷歌在2012年提出的,作为谷歌的两大重要技术储备,一个是深度学习,形成了谷歌大脑;另一个就是知识图谱,用来支撑下一代搜索和在线广告业务。
接着,就是巨头脸谱公司的工作,它在之后利用知识图谱技术构建兴趣图谱(interest graph),用来连接人、分享的信息等,并基于此构建了graph search。
从SIRI到EVI到Google Now,这些仅仅是在交互方式上有所不同,支持自然语言自由沟通的前提是庞大的知识库和基于知识库的各种服务—即知识图谱,此外,大家都知道IBM近年来一直在推动认知智能和智慧地球的理念。
这个对于大数据来说,其实就是全数据的概念。而对于人工智能来说,其实就是将原本没有联系的数据连通,将离散的数据整合在一起,从而提供更有价值的决策支持。而这里的副标题其实更进一步针对B端市场,我们强调了外部数据和内部数据整合的意义和价值。
好了,言归正传!也许你因为不会D3、Javascript而烦恼,没事!!!大多是人还不是工具的使用者嘛,利用好工具也是聪明。下面就来介绍一款通过Christopher Gandrud编写的networkD3: D3 JavaScript Network Graphs from R,它可以轻松创建基于Htmlwidgets框架的网络图。

流程

安装networkD3包

source("http://bioconductor.org/biocLite.R")
biocLite("networkD3")

加载networkD3,创建src源、target目标两个向量,整合成数据框networkData,这样就可通过simpleNetwork函数画出一个简单network.这里,利用自有数据框MisLinks、MisNodes创建复杂一点的network。
network相关的R博客
D3 JS也许比我们想的更复杂
理论paper
算法paper
详细步骤点

关于R的版本的说明:
最好使用3.4.3版本,当然Rstudio对networkD3的支持也是相当不错的,但是要用>=v0.99的版本Rstudio download。

# 载入networkD3
library(networkD3)
# 数据(数据框)
data(MisLinks,MisNodes)  

html<-forceNetwork(Links = MisLinks, Nodes =MisNodes,
Source = "source", Target = "target",Value ="value",
 NodeID = "name",Group = "group", opacity= 0.8,
 Nodesize="size",zoom = TRUE,opacityNoHover=TRUE,
legend=TRUE)
saveNetwork(html,"networkD3_2.html",selfcontained=TRUE)#save HTML

结果:
3D动态Network图_第4张图片
详细说明:
Click ! Package ‘networkD3’ document

# 载入networkD3
library(networkD3)
# 数据(数据框)
data(MisLinks,MisNodes)

Html <- forceNetwork(Links = MisLinks,#线性质数据框  
             Nodes = MisNodes,#节点性质数据框  
             Source = "source",#连线的源变量  
             Target = "target",#连线的目标变量  
             Value = "value",#连线的粗细值  
             NodeID = "name",#节点名称  
             Group = "group",#节点的分组  
             Nodesize = "size" ,#节点大小,节点数据框中  
             ###美化部分  
             fontFamily="宋体",#字体设置如"华文行楷" 等  
             fontSize = 20, #节点文本标签的数字字体大小(以像素为单位)。  
             linkColour="black",#连线颜色,black,red,blue,    
              #colourScale ,linkWidth,#节点颜色,red,蓝色blue,cyan,yellow等  
             charge = -100,#数值表示节点排斥强度(负值)或吸引力(正值)    
             opacity = 0.9,  
             legend=T,#显示节点分组的颜色标签  
             arrows=T,#是否带方向  
             bounded=F,#是否启用限制图像的边框  
             #opacityNoHover=1.0,#当鼠标悬停在其上时,节点标签文本的不透明度比例的数值 
             opacityNoHover=TRUE, #显示节点标签文本
             zoom = T#允许放缩,双击放大 
             ) 
saveNetwork(Html,"networkD3_1.html",selfcontained=TRUE)#save HTML

结果:
3D动态Network图_第5张图片

你可能感兴趣的:(R)