一撮奏、歷史 | 為什么要可視化俏讹?
? ? ? ?數(shù)學(xué)中有一門古老的學(xué)科叫做圖論,專門研究各種不同的圖的性質(zhì)畜吊,最早可以追溯到歐拉的七橋問題泽疆,如圖一所示,話說在歐洲哥尼斯堡(今加里寧格勒)這個地方玲献,有一條河殉疼,河中有兩個小島(A和D),這兩個島通過7座橋和兩岸相連接捌年,人們每天晚上吃好晚飯之后都會在島上岸邊散步瓢娜,這時有愛思考的人就提出了一個問題:有沒有可能在不重復(fù)經(jīng)過任意一座橋的情況下,走遍這所有的7座島礼预?
? ? ? ?我們當(dāng)然可以一遍一遍的嘗試,得到最后的結(jié)果托酸,但是這樣實(shí)在是太慢褒颈,人們問有沒有什么訣竅呢?或者說有沒有什么一般規(guī)律可以解決諸如此類的問題励堡?
? ? ? ?1735年谷丸,大數(shù)學(xué)家Euler
應(yīng)邀來到此地嘗試解決此問題,一年以后应结,29歲的Euler
以一篇論文《哥尼斯堡的七座橋》論文宣布解決了此類問題刨疼,如今我們稱這一類問題為“一筆畫”問題,歐給出了對于此類能夠不重復(fù)的走完所有路線(即一筆畫完不間斷)的問題的充要條件摊趾。
? ? ? ?歐拉的解答開辟了圖論與幾何拓?fù)涞戎匾獢?shù)學(xué)分支币狠,其重要性不言而喻,但是我們這里著重于他解決該問題的一個重要的思維轉(zhuǎn)變砾层,即為了簡化此問題漩绵,歐拉將該問題轉(zhuǎn)化為如下的數(shù)學(xué)模型:他將兩岸B與C、兩島A與D抽象為節(jié)點(diǎn)(node
)肛炮,將連接岸和島的橋視作為比邊(edge
)止吐,從而得到如下的數(shù)學(xué)模型:
? ? ? ?這圖片是我用inkscape
畫的示意圖,由此一來問題就變?yōu)椋涸谧疃嘟?jīng)過每一條邊一次的的情況下侨糟,是否可能遍歷圖中所有的節(jié)點(diǎn)碍扔。
? ? ? ?Euler
對于實(shí)際問題的簡化其實(shí)就是建立數(shù)學(xué)模型的一個過程,本質(zhì)上和我們今天參加數(shù)學(xué)建模大賽時進(jìn)行建模的過程是一樣的秕重。從此不同,對圖,即節(jié)點(diǎn)和連邊組成的對象的研究就蓬勃發(fā)展起來了。
? ? ? ?一直以來人們都認(rèn)為圖論是一門高度抽象化的數(shù)學(xué)分支二拐,其實(shí)際意義不是很大服鹅,轉(zhuǎn)機(jī)出現(xiàn)在上世紀(jì)的90年代,這個時候百新,基于對一些特殊的圖企软,例如規(guī)則圖(Regular Graph
)、隨機(jī)圖(Random Graph
)的研究饭望、以及羅馬尼亞裔的匈牙利美國物理學(xué)家巴拉巴西(Albert-LászlóBarabási
)對萬維網(wǎng)進(jìn)行研究之后仗哨,發(fā)現(xiàn)了所謂的無標(biāo)度(Scale free Network
)網(wǎng)絡(luò),物理學(xué)家發(fā)現(xiàn)現(xiàn)實(shí)生活中的很多現(xiàn)象和結(jié)構(gòu)铅辞,可以在網(wǎng)絡(luò)(network
)的層面上進(jìn)行理解厌漂,而網(wǎng)絡(luò)在本質(zhì)上就是圖的演化,如此一來巷挥,我們就可以構(gòu)建出抽象的網(wǎng)絡(luò)來模擬實(shí)際的網(wǎng)絡(luò)桩卵,如交通網(wǎng)絡(luò)、電力網(wǎng)絡(luò)倍宾、神經(jīng)網(wǎng)絡(luò)雏节、流行病網(wǎng)絡(luò)、甚至全球氣候網(wǎng)絡(luò)高职。由此以來便發(fā)展出了復(fù)雜網(wǎng)絡(luò)這門交叉型的學(xué)科钩乍,復(fù)雜網(wǎng)絡(luò)發(fā)展非常迅猛,科學(xué)家對各種網(wǎng)絡(luò)在各種層面上進(jìn)行研究怔锌,這樣一來就帶來一個問題寥粹,如何能夠快速理解建模之后得到的網(wǎng)絡(luò)?一個方式就是可視化埃元,俗話說一語勝千言涝涤,圖像能夠表達(dá)的信息較之文字會形象許多,在這個背景下,Gephi
這個網(wǎng)絡(luò)可視化軟件就誕生了岛杀。
? ? ? ?Gephi
軟件的宗旨阔拳,用開發(fā)者的話說,就是Exploring dynamic networks in an easy and intuitive way has been incorporated in Gephi from the beginging.
以一種簡單且直觀的方式來呈現(xiàn)動力學(xué)網(wǎng)絡(luò)是Gephi
一開始就追求的目標(biāo)类嗤。Gephi
可處理20000+節(jié)點(diǎn)的大型網(wǎng)絡(luò)糊肠,在這個基礎(chǔ)上,還能依據(jù)不同的研究者的追求調(diào)用不同的高質(zhì)量分層算法遗锣、進(jìn)行數(shù)據(jù)清洗货裹、聚類、統(tǒng)計(jì)以及注釋精偿,接下來我們就開始學(xué)習(xí)這個軟件的使用弧圆。
二赋兵、Gephi
軟件安裝
? ? ? ?gephi
是一個免費(fèi)的大型的復(fù)雜網(wǎng)絡(luò)可視化的軟件,由Bastian M
等人編寫搔预,并一直在更新毡惜,目前最新的版本是Gephi 0.9.2
,其官網(wǎng)網(wǎng)址是:官方網(wǎng)站斯撮,值得一提的是,該軟件在mac
和linux
上也有相應(yīng)的版本扶叉,讀者可各取所需進(jìn)行下載勿锅。
? ? ? ?如圖所示,我們首先點(diǎn)擊進(jìn)入官網(wǎng)枣氧,然后點(diǎn)擊按鈕Download Free
進(jìn)行免費(fèi)下載溢十,軟件大約有72M的大小,一般情況下下載都較快达吞,如果覺得下載速度太慢可以打開迅雷復(fù)制下載網(wǎng)址進(jìn)行下載张弛。
? ? ? ?下載之后,按理說就可以進(jìn)行正常的雙擊exe
安裝的步驟了酪劫,但其實(shí)這軟件有一個要求吞鸭,它必須在java
1.8版本以上才能正常運(yùn)行,否則在安裝之后覆糟,會出現(xiàn)如下窗口:
? ? ? ?導(dǎo)致無法運(yùn)行該軟件刻剥,網(wǎng)上有修改conf
文件的做法,但是我覺得比較麻煩滩字,直接安裝相應(yīng)的版本就好了造虏,若各位嫌麻煩,我這里也附上一個下載鏈接麦箍,下載完默認(rèn)安裝即可漓藕。裝好java 1.8
以后再安裝gephi
軟件,就沒什么問題啦挟裂!
鏈接:https://pan.baidu.com/s/1haUM4Xgv3_P599mIkd6rag
提取碼:mj0h
復(fù)制這段內(nèi)容后打開百度網(wǎng)盤手機(jī)App享钞,操作更方便哦
三、界面介紹
? ? ? ?安裝完畢之后话瞧,雙擊圖標(biāo)打開gephi
嫩与,進(jìn)入上圖所示的界面,簡單來說交排,概覽窗口是你進(jìn)行網(wǎng)絡(luò)可視化并后期調(diào)整的主要窗口划滋;數(shù)據(jù)資料是你導(dǎo)入的電子表格資料;預(yù)覽窗口就是你可視化之后導(dǎo)出圖片之前的預(yù)覽窗口埃篓。
四处坪、通過例子來學(xué)習(xí)可視化
? ? ? ?接下來我們直接舉一個例子來說明如何操作Gephi
軟件作出你的第一張圖:
? ? ? ?首先我腦子里有一個想法,例如說我想可視化一個一維的鏈?zhǔn)骄W(wǎng)絡(luò),且首尾相連同窘,我們假設(shè)有個節(jié)點(diǎn)玄帕,每個節(jié)點(diǎn)和下一個節(jié)點(diǎn)相連,即網(wǎng)絡(luò)的連邊數(shù)為
想邦,那么就需要這兩組數(shù)據(jù):
一個表格用來指出節(jié)點(diǎn)的
。
一個表格用來指出節(jié)點(diǎn)和節(jié)點(diǎn)之間的
丧没。
? ? ? ?如下圖所示
? ? ? ?左邊的node
表格的是節(jié)點(diǎn)信息表格鹰椒,就兩列,分別是Id
和Label
列呕童,這兩列分別代表了節(jié)點(diǎn)的數(shù)量和編號漆际,一共是10個節(jié)點(diǎn),編號是從1到10夺饲;右邊的link
表格是連邊信息表格奸汇,一共三列,分別是Source
和Target
和Weight
列往声,也很好理解擂找,Source
指的就是一條邊的出發(fā)節(jié)點(diǎn)(源節(jié)點(diǎn)),Target
指的就是一條邊的到達(dá)節(jié)點(diǎn)(匯節(jié)點(diǎn))浩销,Weight
就是這條邊的權(quán)重婴洼,一般設(shè)為1,舉個例子撼嗓,第5行中柬采,Source = 4,Target = 5, Weight = 1
代表該邊從節(jié)點(diǎn)4出發(fā),指向節(jié)點(diǎn)5且警,權(quán)重為1粉捻,注意是出發(fā)節(jié)點(diǎn)指向目標(biāo)節(jié)點(diǎn)。
? ? ? ?準(zhǔn)備好表格之后就可以開始畫圖了斑芜!我們關(guān)閉數(shù)據(jù)表格肩刃,打開gephi
,點(diǎn)擊導(dǎo)入數(shù)據(jù)表格杏头,由于表格有兩個盈包,所以數(shù)據(jù)也要導(dǎo)入兩次:
? ? ? ?先導(dǎo)入節(jié)點(diǎn)node
的數(shù)據(jù),這里注意:
? ? ? ?再導(dǎo)入link
的數(shù)據(jù):
? ? ? ?按照數(shù)字所示的步驟來就可以了醇王,添加完以后便可以在workspace
中看到圖像啦呢燥!
? ? ? ?這個時候圖像還不夠好看寓娩,我們在左邊的布局選項(xiàng)卡中選擇YifanHu
布局叛氨,點(diǎn)擊運(yùn)行呼渣,便可以得到上述的圖像,然后再點(diǎn)擊下方選項(xiàng)卡中的顯示標(biāo)簽T
寞埠,調(diào)整大小至不超出節(jié)點(diǎn)即可屁置,這樣一來你的圖像就完成啦!最后點(diǎn)擊上方的預(yù)覽窗口仁连,開始準(zhǔn)備導(dǎo)出工作蓝角。
五、導(dǎo)出圖像
? ? ? ?如下圖所示饭冬,點(diǎn)擊預(yù)覽窗口后帅容,先點(diǎn)擊刷新,發(fā)現(xiàn)出來的圖像和我們WorkSpace
中給的圖像并不一致伍伤?!沒關(guān)系~遣钳,我們依次調(diào)整左邊選項(xiàng)卡中的數(shù)據(jù)扰魂,大部分選項(xiàng)一眼能看明白,可自行調(diào)節(jié)蕴茴,實(shí)在不行就按照我標(biāo)記的數(shù)字來調(diào)整劝评,調(diào)整完以后點(diǎn)擊一下刷新(4),滿意后點(diǎn)擊左下方的圖片格式導(dǎo)出(5)即可倦淀!共有三種格式可以選擇蒋畜,一般建議選擇SVG
進(jìn)一步做調(diào)整或者直接導(dǎo)出PDF
文檔,而PNG
格式實(shí)測存在圖像失真的現(xiàn)象撞叽。
? ? ? ?上面就是作圖以后的最終結(jié)果姻成,是不是挺直觀的?如果不滿意顏色等性質(zhì)愿棋,可以自行摸索調(diào)節(jié)科展,也不是很難。
? ? ? ?以上就是采用Gephi
作圖的一個基本操作啦糠雨,最主要的還是表格的編制才睹,其實(shí)可視化也不是很難,軟件開發(fā)者的目標(biāo)就是讓我們不管是專家還是新手都能直接用鼠標(biāo)進(jìn)行點(diǎn)擊操作甘邀,Gephi is developed toward supporting the whole process with only user interface manipulation
琅攘,因此我們可以盡管嘗試,不用擔(dān)心失敗松邪,大不了重新導(dǎo)入作圖就是了坞琴。