網(wǎng)絡(luò)分析背景知識(shí)
- 圖是一種數(shù)據(jù)結(jié)構(gòu)
圖結(jié)構(gòu):是研究數(shù)據(jù)元素之間的多對多的關(guān)系心软。在這種結(jié)構(gòu)中,任意兩個(gè)元素之間可能存在關(guān)系距境。即結(jié)點(diǎn)之間的關(guān)系可以是任意的步藕,圖中任意元素之間都可能相關(guān)。
基于圖論(Graph theory)的網(wǎng)絡(luò)科學(xué)認(rèn)為傻工,任何非連續(xù)事物之間的關(guān)系都可以用網(wǎng)絡(luò)來表示霞溪,通過將互聯(lián)網(wǎng)內(nèi)的電腦、社會(huì)關(guān)系中的個(gè)人中捆、生物的基因等不同屬性的實(shí)體抽象為節(jié)點(diǎn)(Node)鸯匹,并用連接(Link)來展示實(shí)體之間的關(guān)系,通過量化以節(jié)點(diǎn)和連接為組件的網(wǎng)絡(luò)結(jié)構(gòu)指數(shù)(Index)轨香,從而能夠在統(tǒng)一的框架下尋找復(fù)雜系統(tǒng)的共性忽你。
網(wǎng)絡(luò)關(guān)系圖(network analysis)是一款比較火的分析,最近頻繁出現(xiàn)在微生物生態(tài)研究的各大論文里臂容。其實(shí)單純看網(wǎng)絡(luò)關(guān)系的話,只是一種數(shù)據(jù)分析的手段根蟹,很早就應(yīng)用在其他領(lǐng)域脓杉。然而到了2006年,Proulx等科學(xué)家在TRENDS ECOL EVOL(IF=16.74)發(fā)文简逮,提出網(wǎng)絡(luò)關(guān)系也可以作為一種分析手段應(yīng)用在生態(tài)領(lǐng)域(Proulx et al. 2006)球散。到了2012年,Barberán等科學(xué)家在ISME發(fā)文散庶,通過構(gòu)建土壤中微生物的網(wǎng)絡(luò)關(guān)系來研究其共生模式(Barberán et al. 2012)蕉堰。
目前生態(tài)學(xué)領(lǐng)域大家用到的網(wǎng)絡(luò)圖多為基于群落數(shù)據(jù)相關(guān)性構(gòu)建的Co-occurrence網(wǎng)絡(luò)圖。此類網(wǎng)絡(luò)可以采用R中igraph包悲龟、Python 中的Networkx構(gòu)建并實(shí)現(xiàn)出圖屋讶。當(dāng)然,除此之外须教,還有一些非命令行的軟件皿渗,例如cytoscape斩芭,gephi,pajek乐疆,graphviz(dot)划乖,Ucinet等。
其中 Gephi 是開源免費(fèi)跨平臺(tái)基于JVM的復(fù)雜網(wǎng)絡(luò)分析軟件, 其主要用于各種網(wǎng)絡(luò)和復(fù)雜系統(tǒng)挤土,因它簡單琴庵、易學(xué)、出圖美觀而備受青睞仰美。當(dāng)你打開網(wǎng)絡(luò)圖的大門迷殿,第一個(gè)映入眼簾的可能就是它,適合入門筒占,被譽(yù)為Networker的初戀[扯]贪庙。
-
- 圖相關(guān)的概念和術(shù)語
- 節(jié)點(diǎn)與邊
- 無向圖和有向圖
- Co-occurrence網(wǎng)絡(luò)圖與 相關(guān)性網(wǎng)絡(luò)圖 (兩個(gè)矩陣的相關(guān)性)
- 權(quán):圖中的邊或弧上有附加的數(shù)量信息,這種可反映邊或弧的某種特征的數(shù)據(jù)成為權(quán)翰苫。
- 網(wǎng):圖上的邊或弧帶權(quán)則稱為網(wǎng)止邮。可分為有向網(wǎng)和無向網(wǎng)奏窑。
- 度:在無向圖中导披,與頂點(diǎn)v關(guān)聯(lián)的邊的條數(shù)成為頂點(diǎn)v的度。有向圖中埃唯,則以頂點(diǎn)v為弧尾的弧的條數(shù)成為頂點(diǎn)v的出度撩匕,以頂點(diǎn)v為弧頭的弧的條數(shù)成為頂點(diǎn)v的入度,而頂點(diǎn)v的度=出度+入度墨叛。圖中各點(diǎn)度數(shù)之和是邊(或恢贡稀)的條數(shù)的2倍。
-
- 圖的度量
- 節(jié)點(diǎn)數(shù)(Nodes): 節(jié)點(diǎn)的個(gè)數(shù)漠趁。
- 邊數(shù)(Edges):邊或連接的個(gè)數(shù)扁凛。
- 平均度(Average degree): 表示每個(gè)節(jié)點(diǎn)連接邊的平均數(shù),如果絡(luò)圖是無向圖闯传,平均度的計(jì)算為 2*edges/nodes谨朝。
- 平均路徑長度(Average network distance): 任意兩個(gè)節(jié)點(diǎn)之間的距離的平均值。 反映網(wǎng)絡(luò)中各個(gè)節(jié)點(diǎn)間的分離程度甥绿。 值越小代表網(wǎng)絡(luò)中節(jié)點(diǎn)的連接度越大字币。
- 模塊化指數(shù)(Modularity index): 衡量了網(wǎng)絡(luò)圖結(jié)構(gòu)的模塊化程度。一般>0.44 就說明該網(wǎng)絡(luò)圖達(dá)到了一定的模塊化程度 共缕。
- 聚類系數(shù)(Clustering coefficient): 和平均路徑長度一起洗出,能夠展示所謂的‘小世界’效應(yīng),從而給出一些節(jié)點(diǎn)聚類或抱團(tuán)的總體跡象骄呼。網(wǎng)絡(luò)的小世界特性指網(wǎng)絡(luò)節(jié)點(diǎn)的平均路徑小共苛。
- 網(wǎng)絡(luò)直徑(Diameter): 網(wǎng)絡(luò)圖直徑最大測量長度判没,即任意兩點(diǎn)都有 1 個(gè)最短距離,這些最短距離之中的最大值即為該網(wǎng)絡(luò)圖直徑隅茎。
Gephi 實(shí)現(xiàn)網(wǎng)絡(luò)圖繪制
-
Gephi 安裝
下文Gephi官網(wǎng)安裝(我略澄峰,你不能略)
-
Gephi 安裝
-
-
數(shù)據(jù)處理
以CSV格式文件為例:
- 邊文件((edge):前兩列為節(jié)點(diǎn)ID,另一列為相關(guān)系數(shù)辟犀。
- 節(jié)點(diǎn)文件(node):一列節(jié)點(diǎn)ID俏竞,一列節(jié)點(diǎn)類型
-
數(shù)據(jù)處理
- 3.導(dǎo)入數(shù)據(jù)
當(dāng)然你要打開Gephi√镁梗【文件】→【打開】選擇文件魂毁,在點(diǎn)擊下一步的同時(shí)注意一下每個(gè)參數(shù)的含義是不是你要表達(dá)的意思。分別導(dǎo)入節(jié)點(diǎn)文件與邊文件出嘹。
輸入第二個(gè)文件時(shí) 注意:
- 設(shè)置布局樣式
Gephi提供多種布局方式席楚,一般圓形網(wǎng)絡(luò)圖選擇”Fruchterman Reingold”布局格式。點(diǎn)擊【運(yùn)行】税稼,等布局穩(wěn)定后烦秩,點(diǎn)擊 【停止】,生成圓形布局的網(wǎng)絡(luò)圖郎仆。
-
網(wǎng)絡(luò)拓?fù)鋮?shù)計(jì)算
點(diǎn)擊【窗口-統(tǒng)計(jì)】面板只祠,分別點(diǎn)擊 【運(yùn)行】-【關(guān)閉】當(dāng)然你也可以選擇打印、復(fù)制扰肌,保存抛寝,最終你還是要選擇關(guān)閉。進(jìn)行以下6個(gè)拓?fù)鋮?shù)的計(jì)算:平均度曙旭、網(wǎng)絡(luò)直徑盗舰、圖密度、模塊化桂躏、平均聚類系數(shù)岭皂、平均路徑長度。
注:對于無向網(wǎng)絡(luò)圖沼头,平均度和平均加權(quán)度 數(shù)值相同。再次注意:可能會(huì)卡书劝。
-
網(wǎng)絡(luò)拓?fù)鋮?shù)計(jì)算
-
節(jié)點(diǎn)設(shè)定
點(diǎn)擊【窗口】-【外觀】-【節(jié)點(diǎn)】-大小-數(shù)值設(shè)定进倍,選擇渲染方式為 度,設(shè)置節(jié)點(diǎn)大小的 最大尺寸和最小尺寸(此處分別為20和70)购对,點(diǎn)擊 應(yīng)用猾昆。顏色設(shè)置也在外觀節(jié)點(diǎn)中,設(shè)置渲染方式為Modularity Class注意紅色方框里內(nèi)容骡苞,從左到右依次為:顏色垂蜗、大小楷扬,標(biāo)簽顏色、標(biāo)簽尺寸贴见。
-
節(jié)點(diǎn)設(shè)定
-
邊設(shè)定
在【外觀】中選擇【邊】Partition 渲染方式選擇pn即我們數(shù)據(jù)中相關(guān)性標(biāo)簽烘苹;Ranking選擇【度】。如下:
-
邊設(shè)定
- 預(yù)覽修飾
點(diǎn)擊預(yù)覽片部,修改如下圖紅色方框選項(xiàng)镣衡,在 預(yù)覽設(shè)置 面板對網(wǎng)絡(luò)圖進(jìn)行輸出前的最后修飾。
- 邊框?qū)挾龋涸O(shè)為0.0档悠,不顯示節(jié)點(diǎn)邊框廊鸥。
- 顯示標(biāo)簽:打勾,顯示節(jié)點(diǎn)標(biāo)簽辖所。
- 字體:此處修改為 Times New Roman 23號 加粗
- 縮短標(biāo)簽:打勾惰说,不然標(biāo)簽會(huì)過長導(dǎo)致相互覆蓋。
- 厚度:根據(jù)顯示需要修改邊線厚度缘回,此處改為5吆视。
- 重新調(diào)整權(quán)重:打勾,根據(jù)邊線權(quán)重顯示不同厚度切诀。
另外的選項(xiàng)可根據(jù)需要自行調(diào)整揩环。在之前的設(shè)置中也可以通過預(yù)覽來查看效果,一步一步調(diào)整幅虑。
- 圖像導(dǎo)出
Gephi 支持多種格式的輸出:SVG丰滑、PNG、PDF倒庵、gexf圖文件等褒墨。
- 節(jié)點(diǎn):相同顏色是同一個(gè)門;節(jié)點(diǎn)大小表示連接度擎宝;
- 邊:紅色正相關(guān)郁妈,藍(lán)色負(fù)相關(guān)(spearman),粗細(xì)表示相關(guān)系數(shù)絕對值大猩苌辍噩咪;
導(dǎo)出的矢量圖可用AI等圖形編輯軟件進(jìn)一步修改,圖形文件也可以用腳本來處理极阅,圖個(gè)性化地添加圖例等胃碾。圖文件也是一種標(biāo)簽語言。
讓大家見識(shí)一下筋搏,開頭HelloWorld的代碼:
<?xml version="1.0" encoding="UTF-8"?>
<gexf xmlns="http://www.gexf.net/1.3" version="1.3" xmlns:viz="http://www.gexf.net/1.3/viz" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.gexf.net/1.3 http://www.gexf.net/1.3/gexf.xsd">
<meta lastmodifieddate="2018-05-30">
<creator>Gephi 0.9</creator>
<description></description>
</meta>
<graph defaultedgetype="directed" mode="static">
<nodes>
<node id="0" label="Hello">
<viz:size value="10.0"></viz:size>
<viz:position x="-157.09903" y="-64.66471"></viz:position>
<viz:color r="251" g="9" b="9"></viz:color>
</node>
<node id="1" label="World">
<viz:size value="10.0"></viz:size>
<viz:position x="157.09904" y="64.66471"></viz:position>
<viz:color r="10" g="194" b="245"></viz:color>
</node>
</nodes>
<edges>
<edge id="0" source="0" target="1">
<viz:color r="0" g="109" b="44"></viz:color>
</edge>
</edges>
</graph>
</gexf>
GEXF (Graph Exchange XML Format) 是一種描述復(fù)雜網(wǎng)絡(luò)的語言仆百,包括復(fù)雜網(wǎng)絡(luò)的結(jié)構(gòu),數(shù)據(jù)等等奔脐。最初是由Gephi項(xiàng)目2007年確立俄周。生成gexf需要用到布局算法, 常見的有 Force-directed_graph_drawing 力導(dǎo)向算法, 算法的核心思想是節(jié)點(diǎn)之間產(chǎn)生斥力,邊給兩個(gè)節(jié)點(diǎn)提供拉力,通過多次迭代最后維持一個(gè)穩(wěn)定狀態(tài)
吁讨,手動(dòng)實(shí)現(xiàn)布局算法還是有一些復(fù)雜度的,好在gephi-tookit組件提供了API來處理數(shù)據(jù), 首先在maven項(xiàng)目中加入gephi的倉庫和依賴。
一個(gè)花的例子:How Programmers Relate based on Google Searches
難點(diǎn)在哪峦朗?
- 現(xiàn)有的數(shù)據(jù)到Gephi需要的數(shù)據(jù)格式建丧。
- 布局與配色
- Gephi 沒有生成圖例
參考:
gephi 中文教程|視頻
gephi 官網(wǎng)
Co-occurrence網(wǎng)絡(luò)圖在R中的實(shí)現(xiàn)
從《你的名字》學(xué)做“網(wǎng)絡(luò)關(guān)系圖”——Gephi篇
R||Network
Python · Networkx
GEXF File Format
模塊度Q——復(fù)雜網(wǎng)絡(luò)社區(qū)劃分評價(jià)標(biāo)準(zhǔn)
如何將枯燥的大數(shù)據(jù)呈現(xiàn)為可視化的圖和動(dòng)畫?
學(xué)習(xí)新技術(shù)時(shí)你應(yīng)當(dāng)掌握的『最少必要知識(shí)』
Revelle, W. & Revelle, M. W. Package ‘psych’. The Comprehensive R Archive Network (2015).
Bastian, M., Heymann, S. & Jacomy, M. Gephi: an open source software for exploring andmanipulating networks. Icwsm 8, 361-362 (2009).
Newman, M. E. Modularity and community structure in networks. Proceedings of the national academy of sciences 103, 8577-8582 (2006).
Barberan, A., Bates, S. T., Casamayor, E. O. & Fierer, N. Using network analysis to explore cooccurrence patterns in soil microbial communities. The ISME journal 6, 343-351,doi:10.1038/ismej.2011.119 (2012)
Gephi安裝好 JAVA變量也裝好甚垦,但出現(xiàn) can't find java1.8 or higer錯(cuò)誤
http://forum-gephi.org/viewtopic.php?t=1987 # 模塊度小于零
您看本文值多少錢↓↓↓↓↓↓↓↓↓↓↓↓↓↓