導航:首頁 > 編程語言 > python畫網路圖

python畫網路圖

發布時間:2022-06-05 09:33:48

A. 用python 畫一個網格

print函數是輸出字元串,所以用 print輸出形成的 grid其實質是具有某特定形狀的字元串,而plt.grid() 繪制出的網格是 圖片。

字元串是可以用文字處理軟體(如 word、記事本等)直接編輯處理的,而圖片則只能用圖片編輯軟體(如畫筆)打開處理。

如問題所要求的最簡單的「編寫一個能畫出如下網格(grid)的函數」代碼,可以簡單的用 print函數就可以了:

B. python畫網路圖的問題

可以用python的一個包networkx,在這里下載http://pypi.python.org/pypi/networkx/#downloads
安裝後,在python shell 里可以編寫如下代碼:
import networkx as nx
G=nx.Graph()
G.add_node("spam")
G.add_edge(1,2)
print(G.nodes())[1, 2, 'spam']
print(G.edges())[(1, 2)]

然後按F5執行,即可看到上面的圖。

C. 圖論中的網路圖用什麼軟體畫比較好

pajek 或 cytoscape

D. 如何用python實現網路圖節點權重的添加以及如何把一個非連通的大網路圖分成多個小網路圖

networkx是python的一個庫,它為圖的數據結構提供演算法、生成器以及畫圖工具。近日在使用ryu進行最短路徑獲取,可以通過該庫來簡化工作量。該庫採用函數方式進行調用相應的api,其參數類型通常為圖對象。

函數API的調用,按照以下步驟來創建構建圖:

1.networkx的載入

在python中調用networkx通常只需要將該庫導入即可

import networkx as nx

2.圖對象的創建

networkx提供了四種基本圖對象:Graph,DiGraph,MultiGraph,MultiDiGraph。

使用如下調用方式,可以創建以上四種圖對象的空圖。

G=nx.Graph()
G=nx.DiGraph()
G=nx.MultiGraph()
G=nx.MultiDiGraph()
在 networkx中,圖的各個節點允許以哈希表對象來表示,而對於圖中邊的各個參量,則可以通過與邊相關聯的方式來標識,一般而言,對於權重,用weight作為keyword,而對於其他的參數,使用者可以採用任何除weight以外的keyword來命名。

3.在2中,創建的只是一副空圖,為了得到一個有節點、有邊的圖,一般採用下面這個函數:

1
2
G.add_edge(1,2) #default edge data=1
G.add_edge(1,2) #specify edge data=0.9
add_edge()函數,該函數在調用時需要傳入兩個參數u和v,以及多個可選參數

u和v即圖中的兩個節點,如果圖中不存在節點,在調用時會自動將這兩個節點添加入內,同時構建兩個節點之間的連接關系,可選參數通常指這條邊的權重等關系參量。需要注意的是,如果圖中已經存在了這條邊,重新進行添加時會對這條邊進行跟新操作(也就是覆蓋了原有的信息)。

對於該函數,除了上述的構建方式以外,還有以下幾種方式來創建邊:

1
2
3
G.add_edge(*e) # single edge as tuple of two nodes
G.add_edge(1, 3, weight=7, capacity=15, length=342.7) #using many arguements to create edge
G.add_edges_from( [(1, 2)] ) # add edges from iterable container
有時候,當採用默認方式創建邊以後,我們可能還會往邊裡面添加邊的相關參數,這時候,可以採用下面的方式來更新邊的信息:

1
2
3
4
5
#For non-string attribute keys, use subscript notation.
G.add_edge(1, 2)
G[1][2].update({0: 5}) #更新邊的信息
G.edges[1, 2].update({0: 5}) #更新邊的信息
#上述兩種更新方式,擇一選取即可
細心的朋友可能注意到我在寫創建圖的內容的時候,提到了add_edges_from()函數,該函數也是用來創建邊的,該方式與add_edges()略有不同,比之add_edges()採用一個一個節點的方式進行創建,它來的更為便利。這個函數在調用時,需要一個節點元組作為參數以及多個可選參數作為邊的信息。你可以這么傳遞:

默認創建節點之間的邊:

1
G.add_edges_from([(u,v)])
也可以這么寫,在創建的同時添加信息:

1
G.add_edges_from([(3, 4), (1, 4)], label='WN2898')
通過上述方式,就構建了一個3-4-1的圖的連接,並給每條邊打上了標簽。

由此你就可以創建出自己的圖模型了。

閱讀全文

與python畫網路圖相關的資料

熱點內容
生意不忙怎麼解壓 瀏覽:500
歡太健康app在哪裡下載 瀏覽:488
androidtools使用教程 瀏覽:971
十天突破雅思口語pdf劍9 瀏覽:295
李誕笑場pdf 瀏覽:265
自用紙巾做解壓筆 瀏覽:129
銀行流水解壓碼是多少 瀏覽:895
百度哪個app好用 瀏覽:316
115廣告聯盟源碼 瀏覽:494
聯通app簽到源碼 瀏覽:680
怎麼連接另一個伺服器的資料庫 瀏覽:742
貓盤洗白命令 瀏覽:844
168api源碼 瀏覽:967
不同地方的文件伺服器如何通信 瀏覽:599
自己電腦上搭建ftp伺服器地址 瀏覽:977
程序員的秋招秘籍 瀏覽:821
單片機國內外研究現狀 瀏覽:308
gta5如何進千人真實伺服器 瀏覽:996
電腦html壁紙源碼 瀏覽:726
c語言返回命令 瀏覽:933