色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

用Python制作編程語(yǔ)言的關(guān)系網(wǎng)絡(luò)圖

jmiy_worldofai ? 來(lái)源:未知 ? 作者:胡薇 ? 2018-11-02 10:29 ? 次閱讀

本文會(huì)介紹簡(jiǎn)單的網(wǎng)絡(luò)知識(shí),即便你沒(méi)有相關(guān)背景知識(shí)也能輕松學(xué)會(huì)。今天要教大家制作一張編程語(yǔ)言的關(guān)系網(wǎng)絡(luò)圖。

我們可以在這里看到從過(guò)去到現(xiàn)在的250多種編程語(yǔ)言之間的“設(shè)計(jì)影響”的關(guān)系,下面是該演示的截圖:

接下來(lái),就讓我們一起來(lái)學(xué)做這個(gè)關(guān)系網(wǎng)絡(luò)圖吧!

在當(dāng)今的超連接世界,網(wǎng)絡(luò)在現(xiàn)代生活中無(wú)處不在。舉個(gè)栗子,文摘菌的周末這樣開(kāi)啟——通過(guò)北京的交通網(wǎng)絡(luò)進(jìn)城,然后去最喜歡的咖啡店的一家分店,并將筆記本連上他們的Wi-Fi。接下來(lái),登錄各種常用的社交網(wǎng)站。

眾所周知,在過(guò)去幾十年來(lái)最有影響力的公司中,有一部分是因?yàn)榫W(wǎng)絡(luò)的力量而獲得成功。

Facebook、Twitter、Instagram、LinkedIn以及一些其他的社交媒體平臺(tái)都依賴社交網(wǎng)絡(luò)的小世界特性。這使他們能有效地將用戶彼此(以及和廣告商)之間連接起來(lái)。

谷歌目前的成功主要?dú)w因于他們?cè)缙谠谒?a target="_blank">索引擎市場(chǎng)上的主導(dǎo)地位——部分原因是他們有能力通過(guò)他們的Page Rank網(wǎng)絡(luò)算法來(lái)返回相關(guān)的結(jié)果。

亞馬遜的高效配送網(wǎng)絡(luò)使他們能夠在一些主要城市提供當(dāng)天發(fā)貨。

網(wǎng)絡(luò)算法在人工智能機(jī)器學(xué)習(xí)等領(lǐng)域也是非常重要的。神經(jīng)網(wǎng)絡(luò)領(lǐng)域的研究非常熱門(mén)。計(jì)算機(jī)視覺(jué)中許多必不可少的特征檢測(cè)算法,在很大程度上也是依賴于使用網(wǎng)絡(luò)來(lái)對(duì)圖像的不同部分進(jìn)行建模。

網(wǎng)絡(luò)模型也可以解釋大量的科學(xué)現(xiàn)象,包括有量子力學(xué)、生化途徑以及生態(tài)和社會(huì)經(jīng)濟(jì)系統(tǒng)等。

那么,鑒于它們不可否認(rèn)的重要性,我們應(yīng)該如何更好地理解網(wǎng)絡(luò)及其屬性呢?

網(wǎng)絡(luò)的數(shù)學(xué)研究被稱(chēng)為“圖論”,是數(shù)學(xué)中較易理解的分支之一。本文會(huì)介紹簡(jiǎn)單的網(wǎng)絡(luò)知識(shí),即便你沒(méi)有相關(guān)背景知識(shí)也能輕松學(xué)會(huì)。

此外,我們將使用Python 3.x和一款非常棒的開(kāi)源軟件Gephi,通過(guò)關(guān)系網(wǎng)絡(luò)將過(guò)去和現(xiàn)在的一系列編程語(yǔ)言的網(wǎng)絡(luò)可視化聯(lián)系起來(lái)。

首先,究竟什么是網(wǎng)絡(luò)呢?

其實(shí)上面文摘菌舉的栗子已經(jīng)給了一些線索。交通網(wǎng)絡(luò)由目的和路徑的連接組成。社交網(wǎng)絡(luò)通過(guò)個(gè)人和個(gè)人之間的關(guān)系進(jìn)行連接。Google的搜索引擎算法通過(guò)查看有哪些頁(yè)面鏈接到其他頁(yè)面,來(lái)評(píng)估不同網(wǎng)頁(yè)的“順序”。

更一般地說(shuō),網(wǎng)絡(luò)是可以用節(jié)點(diǎn)和邊描述的任何系統(tǒng),或者通俗來(lái)講,就是我們所說(shuō)的“點(diǎn)和線”。

邊連接節(jié)點(diǎn)(語(yǔ)言)的例子(該網(wǎng)絡(luò)表示了編程語(yǔ)言相互影響的關(guān)系)

有些系統(tǒng)以這種方式建立網(wǎng)絡(luò)比較容易。社交網(wǎng)絡(luò)也許是最明顯的例子。計(jì)算機(jī)文件系統(tǒng)則是另一種方式——文件夾和文件通過(guò)其“父”和“子”關(guān)系創(chuàng)建連接。

但是,網(wǎng)絡(luò)的真正威力其實(shí)在于,許多系統(tǒng)都可以從網(wǎng)絡(luò)的角度來(lái)建模,即使這起初并不明顯。

代表網(wǎng)絡(luò)

我們應(yīng)該如何將點(diǎn)和線的圖片轉(zhuǎn)換成我們可以壓縮的數(shù)字信號(hào)呢?

其中有一個(gè)解決方案是繪制一個(gè)鄰接矩陣來(lái)表示我們的網(wǎng)絡(luò)。

如果你不熟悉矩陣這個(gè)概念,這聽(tīng)起來(lái)可能有點(diǎn)嚇人,但不要害怕。 把它們想象成可以一次執(zhí)行許多計(jì)算的數(shù)字網(wǎng)格就好。下面是一個(gè)簡(jiǎn)單的例子:

在這個(gè)矩陣中,每個(gè)行和列的交集都是0或1,這取決于各個(gè)語(yǔ)言是否被鏈接。你也可以根據(jù)上面的插圖觀察到!

對(duì)于要解決的大多數(shù)問(wèn)題而言,矩陣是以數(shù)學(xué)方式表示網(wǎng)絡(luò)的好方法。然而從計(jì)算的角度來(lái)看,它有時(shí)可能會(huì)有點(diǎn)麻煩。

例如,即使節(jié)點(diǎn)數(shù)量相對(duì)較少(比如說(shuō)有1000個(gè)),矩陣中的元素?cái)?shù)目也會(huì)大得多(例如,1000^2 = 1,000,000)。

許多現(xiàn)實(shí)世界的系統(tǒng)會(huì)產(chǎn)生稀疏網(wǎng)絡(luò),在這些網(wǎng)絡(luò)中,大多數(shù)節(jié)點(diǎn)只能連接其他所有節(jié)點(diǎn)中的一小部分。

如果我們將計(jì)算機(jī)內(nèi)存中1000個(gè)節(jié)點(diǎn)的稀疏網(wǎng)絡(luò)表示為鄰接矩陣,那么我們將在RAM中存儲(chǔ)1,000,000個(gè)字節(jié)的數(shù)據(jù)。大多數(shù)將會(huì)是零。這里有一個(gè)更為有效的方法可以解決這個(gè)問(wèn)題。

這種方法是使用邊列表來(lái)代替鄰接矩陣。這些正是他們所說(shuō)的,它們只是一個(gè)節(jié)點(diǎn)對(duì)相互鏈接的列表。

表示網(wǎng)絡(luò)的另一種手段是鄰接表,它列出了每個(gè)節(jié)點(diǎn)后面與它進(jìn)行鏈接的節(jié)點(diǎn)。例如:

收集數(shù)據(jù),建立連接

任何網(wǎng)絡(luò)模型以及可視化的表現(xiàn)都取決于構(gòu)建網(wǎng)絡(luò)本身所用的數(shù)據(jù)質(zhì)量好壞。除了確保數(shù)據(jù)是準(zhǔn)確和完整的同時(shí),我們也需要一種推斷節(jié)點(diǎn)之間邊的合理方法。

這是相當(dāng)關(guān)鍵的一步,隨后對(duì)網(wǎng)絡(luò)進(jìn)行的任何分析和推斷都取決于“關(guān)聯(lián)標(biāo)準(zhǔn)”的合理性。

例如,在社交網(wǎng)絡(luò)分析中,你可能會(huì)根據(jù)人們是否在社交媒體上相互關(guān)聯(lián)來(lái)創(chuàng)建人與人之間的聯(lián)系。在分子生物學(xué)中,你可能會(huì)基于基因的共同表達(dá)建立連接。

通常,我們還可以給邊分配權(quán)重,從而體現(xiàn)關(guān)系的“強(qiáng)度”。

例如,對(duì)于網(wǎng)上零售的情況,可以根據(jù)產(chǎn)品被同時(shí)購(gòu)買(mǎi)的頻率來(lái)計(jì)算權(quán)重。用高權(quán)重的邊連接經(jīng)常被同時(shí)購(gòu)買(mǎi)的產(chǎn)品,用低權(quán)重的邊連接偶爾被同時(shí)購(gòu)買(mǎi)的產(chǎn)品。和偶爾被同時(shí)購(gòu)買(mǎi)的產(chǎn)品相比,那些不會(huì)被同時(shí)購(gòu)買(mǎi)的產(chǎn)品根本就不會(huì)被網(wǎng)絡(luò)連接。

正如你想的那樣,將節(jié)點(diǎn)彼此連接的方法有可能很復(fù)雜。

但是對(duì)于本教程,我們將使用更簡(jiǎn)單的方式連接編程語(yǔ)言。我們要依靠維基百科。

維基百科所取得的的成功證明了它的可靠性。文章寫(xiě)作的開(kāi)源合作方法也應(yīng)該保證一定程度的客觀性。

而且,它的頁(yè)面結(jié)構(gòu)相對(duì)一致,使其成為試用網(wǎng)頁(yè)抓取技術(shù)的便利場(chǎng)所。

另一個(gè)便利工具是覆蓋面廣泛的、有據(jù)可查的維基百科API,這使得信息檢索更容易。接下來(lái)讓我們一起開(kāi)始吧。

第一步:安裝Gephi

Gephi可在Linux、Mac和Windows的環(huán)境下進(jìn)行安裝。

對(duì)于這個(gè)項(xiàng)目,我使用了Lubuntu。如果你使用的是Ubuntu / Debian,那么你可以按照下面的步驟來(lái)啟動(dòng)和運(yùn)行Gephi。如果不是,那么安裝過(guò)程也不會(huì)差太多。

下載最新版本的Gephi到你的系統(tǒng)(在撰寫(xiě)本文時(shí)是v.0.9.1)。準(zhǔn)備就緒后,你需要提取文件。

你可能需要檢查你的Java JRE版本。Gephi需要最新版本。在我剛剛安裝的Lubuntu上,我只安裝了default-jre,下面的一切將建立在此基礎(chǔ)上。

在你準(zhǔn)備好進(jìn)行安裝之前還有一步。為了將圖表導(dǎo)出到Web,你可以使用Gephi的Sigma.js插件。

從Gephi的菜單欄中選擇“工具”選項(xiàng),然后選擇“插件”。

點(diǎn)擊“可用插件”標(biāo)簽并選擇“SigmaExporter”(我也安裝了JSON導(dǎo)出器,因?yàn)樗橇硪粋€(gè)有用的插件)。

點(diǎn)擊“安裝”按鈕,你將完成整個(gè)安裝過(guò)程。安裝結(jié)束后,你需要重新啟動(dòng)Gephi。

第二步:編寫(xiě)Python腳本

本教程將使用python 3.x以及一些模塊來(lái)進(jìn)行簡(jiǎn)化。使用pip模塊安裝程序,需運(yùn)行一下命令:

現(xiàn)在,在一個(gè)新的目錄中,創(chuàng)建一個(gè)名為script.py的文件,并在你最喜歡的代碼編輯器/ IDE中打開(kāi)它。以下是主要邏輯的大綱:

首先,你需要有一個(gè)編程語(yǔ)言的列表。

接下來(lái),通過(guò)該列表并檢索維基百科相關(guān)文章的HTML。

從中提取出每種語(yǔ)言所影響的編程語(yǔ)言列表。這是我們連接節(jié)點(diǎn)的粗略標(biāo)準(zhǔn)。

同時(shí),我們可以抓取一些關(guān)于每種語(yǔ)言的元數(shù)據(jù)。

最后,將收集的所有數(shù)據(jù)寫(xiě)入一個(gè).csv文件。

完整的腳本在這里:

(https://gist.github.com/anonymous/2a6c841fe04ebc6d55acc259b4ac4f72)。

導(dǎo)入模塊

在script.py中,首先導(dǎo)入一些模塊。

準(zhǔn)備好后——從創(chuàng)建一個(gè)節(jié)點(diǎn)的列表開(kāi)始。這是Wikipedia模塊派上用場(chǎng)的地方。它使得訪問(wèn)維基百科API非常容易。

添加下面的代碼:

保存并運(yùn)行上面的腳本,將看到打印出“List of programming languages”維基百科文章中的所有鏈接。

另外,還需要手動(dòng)檢查自動(dòng)收集的數(shù)據(jù)。快速瀏覽后我們可以發(fā)現(xiàn),除了許多實(shí)際的編程語(yǔ)言之外,該腳本還提供了一些額外的鏈接。

如:可能會(huì)看到“List of markup languages”,“Comparison of programming languages”等。

雖然Gephi允許你移除不想包含的節(jié)點(diǎn),但為了節(jié)省時(shí)間,還是讓我們先進(jìn)行一輪數(shù)據(jù)清洗。

這些代碼定義了要從數(shù)據(jù)中移除的子字符串列表。運(yùn)行該腳本時(shí)遍歷數(shù)據(jù),移除所有包含不需要的子字符串的元素。

在Python語(yǔ)言中,完成這些只需要一行代碼!

其他輔助函數(shù)

現(xiàn)在我們可以開(kāi)始從wikipedia抓取數(shù)據(jù)并建立一個(gè)邊列表(并收集所有元數(shù)據(jù))。為了更簡(jiǎn)便,讓我們首先定義一些函數(shù)。

抓取HTML

第一個(gè)函數(shù)使用BeautifulSoup模塊來(lái)獲取每種語(yǔ)言的Wikipedia頁(yè)面的HTML。

這個(gè)函數(shù)使用urllib.request模塊來(lái)獲取“https://en.wikipedia.org/wiki/”+“編程語(yǔ)言”頁(yè)面的HTML。

然后傳給BeautifulSoup,它將讀取HTML并解析為一個(gè)可以用來(lái)搜索信息的對(duì)象。

接下來(lái),使用find_all()方法抓取感興趣的HTML元素。

下面,是每種編程語(yǔ)言文章頂部的匯總表。該如何識(shí)別呢?

最簡(jiǎn)單的方法是訪問(wèn)其中一個(gè)編程語(yǔ)言頁(yè)面。在這里,可以簡(jiǎn)單地使用瀏覽器的開(kāi)發(fā)工具來(lái)檢查感興趣的元素。匯總表有HTML標(biāo)記

和CSS類(lèi)“infobox”和“vevent”,因此可以使用這些來(lái)標(biāo)識(shí)HTML中的表格。

參數(shù)指定它:

find_all()返回符合標(biāo)準(zhǔn)的所有元素列表。為了指定感興趣的元素,需要添加索引[0]。如果函數(shù)執(zhí)行成功,則返回table對(duì)象,否則,返回None。

在使用了自動(dòng)數(shù)據(jù)收集程序的情況下,全面的異常處理是非常重要的。如果沒(méi)有,那么在最好的情況下如果腳本崩潰了,數(shù)據(jù)抓取程序需要重新開(kāi)始執(zhí)行。

在最壞的情況下,你獲得數(shù)據(jù)集將包含不一致性和錯(cuò)誤,這將為你后續(xù)的工作買(mǎi)下隱患。

檢索元數(shù)據(jù)

下一個(gè)函數(shù)使用table對(duì)象來(lái)查找一些元數(shù)據(jù)。下面給出在表格中搜索語(yǔ)言第一次出現(xiàn)的年份的代碼。

這個(gè)簡(jiǎn)短的函數(shù)以table對(duì)象作為參數(shù),并調(diào)用BeautifulSoup的get_text()函數(shù)生成一個(gè)字符串。

下一步是創(chuàng)建一個(gè)名為year的子字符串。該字符串存儲(chǔ)了在“appear”這個(gè)詞首次出現(xiàn)之后的30個(gè)字符。這個(gè)字符串應(yīng)該包含語(yǔ)言第一次出現(xiàn)的年份。

為了僅提取年份,使用正則表達(dá)式(通過(guò)re模塊)來(lái)匹配任何以1到3之間的數(shù)字開(kāi)頭、并緊鄰三個(gè)數(shù)字的字符串。

如果執(zhí)行成功,函數(shù)將返回一個(gè)整數(shù)的year。否則,我們會(huì)得到“Could not determine”。你可能還想進(jìn)一步挖掘元數(shù)據(jù),例如范例,設(shè)計(jì)者或打字規(guī)律。

收集鏈接

我們還需要一個(gè)函數(shù)–該函數(shù)讀入給定語(yǔ)言的table對(duì)象,輸出一個(gè)包含其他編程語(yǔ)言的列表。

仔細(xì)觀察上面代碼中嵌套部分,到底是怎么回事呢?

這個(gè)函數(shù)利用了table對(duì)象具有結(jié)構(gòu)一致性的事實(shí)。表中的信息存儲(chǔ)在行中(相關(guān)的HTML標(biāo)簽是

)。其中一行包含文字“ nInfluenced n”。函數(shù)的第一部分查找這是哪一行。

一旦找到這一行,就可以確定下一行包含了被當(dāng)前行影響的每種編程語(yǔ)言的鏈接。使用find_all(“a”)便可查找這些鏈接 - 其中參數(shù)“a”對(duì)應(yīng)于HTML標(biāo)簽

對(duì)于每個(gè)鏈接j,將其[“title”]屬性添加到名為out的列表。對(duì)[“title”]屬性感興趣的原因是因?yàn)樗鼘⑼耆ヅ浯鎯?chǔ)在節(jié)點(diǎn)中的語(yǔ)言名稱(chēng)。

例如,Java作為“Java(編程語(yǔ)言)”存儲(chǔ)在節(jié)點(diǎn)中,因此需要在整個(gè)數(shù)據(jù)集中使用這個(gè)確切的名稱(chēng)。

如果執(zhí)行成功,getLinks()將返回一組編程語(yǔ)言。該函數(shù)的其余部分進(jìn)行了異常處理,以防程序在某一階段出現(xiàn)問(wèn)題。

收集數(shù)據(jù)

最后,在一切準(zhǔn)備就緒后執(zhí)行腳本,收集數(shù)據(jù)并將其存儲(chǔ)在兩個(gè)列表對(duì)象中。

現(xiàn)在編寫(xiě)一個(gè)循環(huán),將先前定義的函數(shù)應(yīng)用于nodes中的每個(gè)詞條,并將輸出存儲(chǔ)在edgeList和meta中。

該函數(shù)使用節(jié)點(diǎn)中的每種語(yǔ)言,并嘗試從維基百科頁(yè)面檢索匯總表。

然后,該函數(shù)將檢索表中列出的與目標(biāo)語(yǔ)言所關(guān)聯(lián)的全部語(yǔ)言。

對(duì)于同時(shí)出現(xiàn)在節(jié)點(diǎn)列表中的每種語(yǔ)言,將一個(gè)元素以[“source,target”]的形式添加到edgeList。通過(guò)這種方式,建立一個(gè)邊的列表傳給Gephi。

出于調(diào)試的目的,打印添加到edgeList的每個(gè)元素——這樣做僅僅為了確保一切都工作。如果想要更徹底地調(diào)試,也可以添加打印語(yǔ)句到except語(yǔ)句中。

接下來(lái),獲取語(yǔ)言的名稱(chēng)和年份,并將其添加到元列表中。

寫(xiě)進(jìn)CSV文件

一旦循環(huán)運(yùn)行,最后一步是將edgeList和meta的內(nèi)容寫(xiě)入到CSV文件。通過(guò)使用前面導(dǎo)入的csv模塊,完成上一步驟就容易多了。

完成了!保存腳本,并從終端運(yùn)行:

$ python3 script.py

當(dāng)構(gòu)建邊列表時(shí),你可以看到腳本輸出了source-target對(duì)。確保網(wǎng)絡(luò)連接的穩(wěn)定性后,你就可以坐等結(jié)果了,此時(shí)腳本將發(fā)揮其魔力。

第三步:用Gephi建立圖形

希望你已經(jīng)安裝并運(yùn)行了Gephi。現(xiàn)在你可以創(chuàng)建一個(gè)新項(xiàng)目,并使用你收集的數(shù)據(jù)來(lái)構(gòu)建有向圖。有向圖將顯示不同的編程語(yǔ)言是如何相互影響的!

首先在Gephi中創(chuàng)建一個(gè)新項(xiàng)目,然后切換到“數(shù)據(jù)實(shí)驗(yàn)室”窗口。Gephi中提供了一個(gè)擴(kuò)展式的接口來(lái)處理數(shù)據(jù)。首先要導(dǎo)入列表。

點(diǎn)擊“導(dǎo)入電子表格”。

選擇由Python腳本生成的edge_list.csv文件。確保Gephi中使用逗號(hào)作為分隔符。

從列表類(lèi)型中選擇“邊列表”

點(diǎn)擊“下一步”,導(dǎo)入源和目標(biāo)列作為字符串,并檢查。

用一個(gè)節(jié)點(diǎn)列表來(lái)更新數(shù)據(jù)實(shí)驗(yàn)室。現(xiàn)在,導(dǎo)入 metadata.csv文件。這一次,從列表類(lèi)型中選擇“節(jié)點(diǎn)列表”。

切換到“Preview”選項(xiàng)卡,查看網(wǎng)絡(luò)的外觀。

這時(shí)的圖形看起來(lái)顏色十分單一,而且雜亂無(wú)章,就像一盤(pán)意大利面。所以我們接下來(lái)要進(jìn)行圖像美化。

圖像美化

我們可以通過(guò)各種方式來(lái)演示圖像,也可以盡情發(fā)揮自己的創(chuàng)意。另外,關(guān)于網(wǎng)絡(luò)可視化還要考慮以下三件事情:

節(jié)點(diǎn)定位:生成網(wǎng)絡(luò)布局模式的算法有很多,比較流行的是fruchterman - reingold算法,而且Gephi支持該算法。

節(jié)點(diǎn)大小:圖中節(jié)點(diǎn)的大小可以用來(lái)表示一些有趣的屬性。通常,這是一個(gè)中心性度量。度量中心性的方法有很多,但它們都反映了給定節(jié)點(diǎn)的“重要性”,即它與網(wǎng)絡(luò)的其他部分關(guān)聯(lián)的緊密程度。

節(jié)點(diǎn)著色:我們還可以使用顏色來(lái)顯示節(jié)點(diǎn)的某些屬性。通常,顏色用來(lái)表示群落結(jié)構(gòu),廣泛定義為“與圖的其余部分相比關(guān)聯(lián)更緊密的一組節(jié)點(diǎn)”。在社交網(wǎng)絡(luò)中,群落結(jié)構(gòu)可以揭示個(gè)人的友情、家庭或?qū)I(yè)團(tuán)體之間的關(guān)聯(lián)。有幾種算法可以檢測(cè)群落結(jié)構(gòu),Gephi自帶的檢測(cè)算法是Louvain方法。

要執(zhí)行上述步驟,還需要計(jì)算一些統(tǒng)計(jì)數(shù)據(jù)。切換到“Overview”窗口。在這里你可以看到右側(cè)的一個(gè)面板。它包含一個(gè)“Statistics”選項(xiàng)卡。打開(kāi)它,你將看到一系列選項(xiàng)。

Gephi具有許多內(nèi)置的統(tǒng)計(jì)功能。對(duì)于每種功能,點(diǎn)擊“Run”將生成一個(gè)報(bào)告,該報(bào)告揭示了關(guān)于網(wǎng)絡(luò)的一些洞見(jiàn)。

如果要修改網(wǎng)絡(luò)的外觀,我們可以轉(zhuǎn)向左邊的面板。

在“Layout”選項(xiàng)卡中,可以選擇要使用的布局算法。點(diǎn)擊“運(yùn)行”,實(shí)時(shí)觀看圖表的變化!看看你認(rèn)為哪種布局算法效果最好。

在Layout選項(xiàng)卡之上是“Appearance”選項(xiàng)卡。在這里,你可以為節(jié)點(diǎn)和各條邊的顏色、大小和標(biāo)簽進(jìn)行設(shè)置,也可以根據(jù)數(shù)據(jù)的屬性來(lái)配置(包括你要計(jì)算的數(shù)據(jù))。

一個(gè)建議:

根據(jù)模塊化屬性將節(jié)點(diǎn)著色。著色的根據(jù)是節(jié)點(diǎn)的群落成員關(guān)系。

根據(jù)節(jié)點(diǎn)的平均程度來(lái)確定節(jié)點(diǎn)的大小。關(guān)聯(lián)緊密的節(jié)點(diǎn)會(huì)比關(guān)聯(lián)稀疏的節(jié)點(diǎn)顯得大。

不過(guò),也可以嘗試設(shè)計(jì)一個(gè)最喜歡的布局。一旦對(duì)圖形外觀感到滿意,就可以進(jìn)入最后一個(gè)步驟——將圖形導(dǎo)出至網(wǎng)頁(yè)!

第四步:使用Sigma.js插件

既然已經(jīng)構(gòu)建了一個(gè)可以在Gephi中查看的網(wǎng)絡(luò)可視化,接下來(lái)可以選擇使用屏幕截圖,或者以SVG、PDF或PNG格式保存圖形。

如果已經(jīng)安裝了Sigma.js插件,也可以把圖形導(dǎo)出到HTML,這將會(huì)創(chuàng)建一個(gè)交互式可視化,不僅可以在線上發(fā)布,也可以上傳到GitHub,與他人分享。

可從Gephi的菜單欄選擇“Export >Sigma.js模板…”。

按要求填寫(xiě)詳細(xì)信息。確保選擇導(dǎo)出項(xiàng)目所在的目錄。你也可以更改圖形的標(biāo)題、圖例、描述、懸停和許多其他細(xì)節(jié)。當(dāng)你準(zhǔn)備好了,點(diǎn)擊“確定”。

現(xiàn)在,如果你打開(kāi)導(dǎo)出項(xiàng)目所在的目錄,你將看到一個(gè)文件夾,其中包含Sigma.js生成的所有文件。

在你最喜歡的瀏覽器打開(kāi)index.html文件。哈!你的網(wǎng)絡(luò)!如果你知道一些CSS和JavaScript,可以載入各種生成的文件到你的網(wǎng)絡(luò)中,以便按照你的意愿調(diào)整輸出的網(wǎng)絡(luò)。

腦洞開(kāi)一開(kāi),網(wǎng)絡(luò)畫(huà)起來(lái)

許多系統(tǒng)可以作為網(wǎng)絡(luò)進(jìn)行建模和可視化。圖論是數(shù)學(xué)的一個(gè)分支,它提供了幫助理解網(wǎng)絡(luò)結(jié)構(gòu)和屬性的工具。

使用Python從Wikipedia獲取數(shù)據(jù),構(gòu)建編程語(yǔ)言影響圖。關(guān)聯(lián)標(biāo)準(zhǔn)是一種給定的語(yǔ)言是否能被列為對(duì)設(shè)計(jì)另一種語(yǔ)言的影響。

Gephi和Sigma.js是分析和可視化網(wǎng)絡(luò)的開(kāi)源工具。它們可以讓你以圖像、PDF或Web格式導(dǎo)出網(wǎng)絡(luò)。

模仿本文的方法,你還可以為很多其他的關(guān)系建模并做出可視化。腦洞開(kāi)一開(kāi),網(wǎng)絡(luò)畫(huà)起來(lái)。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 編程語(yǔ)言
    +關(guān)注

    關(guān)注

    10

    文章

    1942

    瀏覽量

    34707
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4792

    瀏覽量

    84628

原文標(biāo)題:手把手:一張圖看清編程語(yǔ)言發(fā)展史,你也能用Python畫(huà)出來(lái)!

文章出處:【微信號(hào):worldofai,微信公眾號(hào):worldofai】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    網(wǎng)絡(luò)圖

    大家誰(shuí)知道這種網(wǎng)絡(luò)圖怎么做啊?求代碼
    發(fā)表于 12-11 14:15

    新手如何快速學(xué)Python編程語(yǔ)言

    方式  1. 自主學(xué)習(xí)  Python是一門(mén)相對(duì)簡(jiǎn)單的編程語(yǔ)言,如果你有編程功底,同時(shí)自學(xué)能力還很強(qiáng),可以選擇自學(xué)Python
    發(fā)表于 12-20 16:05

    Python編程語(yǔ)言可以應(yīng)用在哪些方面?

    Python是一門(mén)簡(jiǎn)單、易學(xué)并且很有前途的編程語(yǔ)言,很多人都對(duì)Python感興趣,但是當(dāng)學(xué)完Python基礎(chǔ)用法之后,又會(huì)產(chǎn)生迷茫,尤其是自
    發(fā)表于 02-05 17:50

    Python與其他編程語(yǔ)言有何不同?

      Python是廣泛用于各種應(yīng)用程序領(lǐng)域的流行高級(jí)編程語(yǔ)言之一。該語(yǔ)言是由荷蘭程序員創(chuàng)建的,最初于1991年發(fā)布。美國(guó)的Python專(zhuān)家,
    發(fā)表于 09-16 15:54

    網(wǎng)絡(luò)圖論的基本概念

    網(wǎng)絡(luò)圖論的基本概念              對(duì)于一個(gè)電路,如果點(diǎn)表示其節(jié)點(diǎn),
    發(fā)表于 07-27 09:47 ?3080次閱讀
    <b class='flag-5'>網(wǎng)絡(luò)圖</b>論的基本概念

    最流行的編程語(yǔ)言java,python

    世界上最大的編程相關(guān)書(shū)籍出版商Packt Publishing進(jìn)行的市場(chǎng)研究顯示,Java和Python是當(dāng)今最流行的編程語(yǔ)言,Java流行程度位居第3。 該公司通過(guò)調(diào)查11000受訪
    發(fā)表于 09-26 10:22 ?0次下載
    最流行的<b class='flag-5'>編程</b><b class='flag-5'>語(yǔ)言</b>java,<b class='flag-5'>python</b>

    python串口編程實(shí)例

    和強(qiáng)大的庫(kù)。它常被昵稱(chēng)為膠水語(yǔ)言,能夠把其他語(yǔ)言制作的各種模塊(尤其是C/C++)很輕松地聯(lián)結(jié)在一起。下面我們來(lái)看看python串口
    發(fā)表于 01-15 09:35 ?4.6w次閱讀

    基于FMEA的故障網(wǎng)絡(luò)圖自動(dòng)構(gòu)建

    針對(duì)復(fù)雜機(jī)電系統(tǒng)故障網(wǎng)絡(luò)圖(FG)模型構(gòu)建問(wèn)題,對(duì)失效模式和效果分析(FMEA)的方法進(jìn)行了研究,對(duì)FMEA故障模式關(guān)聯(lián)影響和邏輯關(guān)系進(jìn)行了分析,對(duì)故障關(guān)聯(lián)矩陣和其形式化表達(dá)之間的關(guān)系進(jìn)行了歸納
    發(fā)表于 02-26 10:42 ?1次下載
    基于FMEA的故障<b class='flag-5'>網(wǎng)絡(luò)圖</b>自動(dòng)構(gòu)建

    2020年最簡(jiǎn)單易用的6款網(wǎng)絡(luò)圖制作工具

    網(wǎng)絡(luò)圖,其實(shí)就是指用圖片的形式去表達(dá)傳輸媒體互聯(lián)各種設(shè)備的物理布局,其實(shí)不只是專(zhuān)業(yè)的工作人員會(huì)用到,咱們自家房子的裝修、公司里網(wǎng)絡(luò)改裝升級(jí)等都會(huì)接觸到。那么當(dāng)今市面上有哪些簡(jiǎn)單易用的網(wǎng)絡(luò)圖制作
    的頭像 發(fā)表于 06-15 20:43 ?6958次閱讀

    關(guān)系網(wǎng)絡(luò)的社團(tuán)結(jié)構(gòu)發(fā)現(xiàn)算法綜述

    關(guān)系網(wǎng)絡(luò)的社團(tuán)結(jié)構(gòu)發(fā)現(xiàn)算法綜述
    發(fā)表于 06-11 16:18 ?7次下載

    基于強(qiáng)連接網(wǎng)絡(luò)圖的無(wú)損壓縮算法綜述

    基于強(qiáng)連接網(wǎng)絡(luò)圖的無(wú)損壓縮算法綜述
    發(fā)表于 06-27 11:13 ?6次下載

    自學(xué)python單片機(jī)編程-Python語(yǔ)言控制單片機(jī)

    自學(xué)python單片機(jī)編程-Python語(yǔ)言控制單片機(jī)
    發(fā)表于 11-13 17:36 ?40次下載
    自學(xué)<b class='flag-5'>python</b>單片機(jī)<b class='flag-5'>編程</b>-<b class='flag-5'>用</b><b class='flag-5'>Python</b><b class='flag-5'>語(yǔ)言</b>控制單片機(jī)

    Python學(xué)習(xí)科學(xué)編程

    Python學(xué)習(xí)科學(xué)編程Python經(jīng)典教材。
    發(fā)表于 03-09 15:00 ?0次下載

    python和人工智能的關(guān)系

    python和人工智能的關(guān)系 Python語(yǔ)言是人工智能領(lǐng)域最為流行和廣泛應(yīng)用的編程語(yǔ)言之一,因
    的頭像 發(fā)表于 08-17 16:29 ?790次閱讀

    Python編程語(yǔ)言屬于什么語(yǔ)言

    Python編程語(yǔ)言屬于高級(jí)編程語(yǔ)言中的一種。它是一種通用、面向?qū)ο蟆⒔忉屝?b class='flag-5'>編程
    的頭像 發(fā)表于 11-22 14:31 ?1481次閱讀
    主站蜘蛛池模板: 中文国产乱码在线人妻一区二区 | 成人亚洲视频| 国产线精品视频在线观看| 媚药调教被撑到合不拢h| 午夜亚洲精品不卡在线| 97午夜精品| 韩国女人高潮嗷嗷叫视频| 欧美一区二区在线观看| 一本道久在线综合色色| 丰满少妇被猛烈进出69影院| 伦理在线影院伦理电影| 亚洲国产精品天堂在线播放| 成人区在线观看免费视频| 肉耽高h一受n攻| 99九九精品视频| 久久国内精品视频| 少妇性饥渴BBBBBBBBB| free18sex性自拍裸舞| 久久亚洲精品中文字幕| 亚洲欧美中文字幕高清在线| 国产精品免费一区二区三区四区 | chinese东北老年tv视频| 日本妈妈JMZZZZZ| 99热精品在线av播放| 青青草原直播| 9久久免费国产精品特黄 | TUBE69CHINESE学生| 美女被艹网站| 在线观看亚洲免费人成网址 | 亚州视频一区| 抽插妇女疯狂视频| 日韩精品免费在线观看| www色小姐| 外女思春台湾三级| 国产成人无码精品久久久按摩| 日本片bbbxxx| 国产欧洲野花A级| 亚洲成AV人电影在线观看| 国产又黄又硬又粗| 亚洲国产综合人成综合网站00| 久久精品视频16|
    <noscript id="wgg2m"><input id="wgg2m"></input></noscript>