知識圖譜主要是通過將應用數學,圖形學,信息可視化技術,信息科學等學科的理論與方法與計量學引文分析、共現分析等方法結合,利用可視化的圖譜形象地展示學科的核心結構、發展歷史、前沿領域以及整體知識架構達到多學科融合目的的現代理論。
今天我們借助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 #可縮放
結果如下:
至於其他參數大家可以自己去試試。,關注我的微信公眾號《跟着菜鳥一起學R語言》,回復simpleNetwork,即可獲取這次試用到的數據以及 RGB顏色查詢對照表。
轉載請注明原文鏈接:http://blog.csdn.net/wzgl__wh/article/details/53290514