最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

NetWorkX使用方法及nx.draw()相關(guān)參數(shù)解讀

 更新時間:2022年12月16日 15:10:03   作者:來包番茄沙司  
這篇文章主要介紹了NetWorkX使用方法及nx.draw()相關(guān)參數(shù)解讀,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

networkx在02年5月產(chǎn)生,是用python語言編寫的軟件包,便于用戶對復(fù)雜網(wǎng)絡(luò)進(jìn)行創(chuàng)建、操作和學(xué)習(xí)。

利用networkx可以以標(biāo)準(zhǔn)化和非標(biāo)準(zhǔn)化的數(shù)據(jù)格式存儲網(wǎng)絡(luò)、生成多種隨機(jī)網(wǎng)絡(luò)和經(jīng)典網(wǎng)絡(luò)、分析網(wǎng)絡(luò)結(jié)構(gòu)、建立網(wǎng)絡(luò)模型、設(shè)計新的網(wǎng)絡(luò)算法、進(jìn)行網(wǎng)絡(luò)繪制等。

官方文檔:https://www.osgeo.cn/networkx/reference/introduction.html

代碼

首先導(dǎo)入包

import networkx as nx

創(chuàng)建一個空圖

G = nx.Graph()

添加節(jié)點(diǎn)和邊

G.add_node(1) #添加單個節(jié)點(diǎn)
G.add_node("x",name='tome') #添加單個節(jié)點(diǎn)及屬性
G.add_nodes_from([2,3]) #從一個可迭代容器中添加多個節(jié)點(diǎn)
G.add_nodes_from([(4, {"color": "red"}), (5, {"color": "green"})])# 添加節(jié)點(diǎn)和屬性
H = nx.path_graph(10) #創(chuàng)建一個新圖
G.clear() # 清空圖
G.add_nodes_from(H) #從另一張圖中添加節(jié)點(diǎn)
print(list(H.nodes))
print(list(G.nodes))
G.add_edge(1,3)#添加一條邊
G.add_edges_from([(2,3),(3,4)])# 添加多條邊

查看節(jié)點(diǎn)和邊

list(G.nodes) #查看節(jié)點(diǎn)
for k, v in G.nodes.items():  print(k,v)  #查看節(jié)點(diǎn)及屬性
G.number_of_nodes() #查看幾個節(jié)點(diǎn)
G.adj[1] #查看鄰居節(jié)點(diǎn)
G[1] #查看鄰居節(jié)點(diǎn)
list(G.neighbors(1)) #查看鄰居節(jié)點(diǎn)

G.number_of_edges() #查看幾條邊
G.add_edge(1,3) #查看特定邊
G.edges() #查看邊
G.add_edge(2,3)
G.edges([1]) #查看1連接的所有邊
G.edges([3]) #查看1連接的所有邊

G.degree[1] #查看度

for node,neighbors in g.adjacency():
    print(node, neighbors) # 查看鄰接矩陣內(nèi)容

刪除節(jié)點(diǎn)和邊

G.remove_node(4)
G.remove_edge(1,3)

用已有的圖構(gòu)建新圖

# 構(gòu)建有向圖
g = nx.DiGraph(G)
nx.draw(g)

獲取節(jié)點(diǎn)和邊

G = nx.Graph([(1,2,{'color':'red'})])
G[1] #獲取1的鄰居節(jié)點(diǎn)
G[1][2] #獲取邊屬性
G.edges[1,2] #獲取邊屬性

圖、節(jié)點(diǎn)、邊屬性

# 圖級別屬性
g = nx.Graph(day = 'none')
g.graph #輸出圖級別的屬性信息
g.graph['day']= 'tom' #修改圖級別屬性信息
g.graph['date']= 'now' #添加圖級別屬性信息
# 節(jié)點(diǎn)屬性
g.add_node(1, time='now')
g.add_nodes_from([2,3,4,5,6], time='yes')
g.nodes.data()
g.nodes[2]
# 邊屬性
g.add_edge(1,2,time='now')
g.add_edges_from([(1,2,{'time':'now'}),(1,3,{'time':'naw'})])
G[1][2]['color'] = 'blue'
G.edges[1,2]['color'] ='Y'
g.edges.data()

分析圖

# 分析圖:連通分量
g.clear()
g.add_edges_from([(1,2),(3,2)])
g.add_nodes_from("spam")
list(nx.connected_components(g)) #有5個連通分量
nx.draw(g) #可視化
#分析圖:按度排序
sorted(((node,degree) for node,degree in g.degree), key= lambda d:d[1],reverse = True)

圖可視化

# 圖可視化
g = nx.petersen_graph()
nx.draw(g, with_labels = True) #標(biāo)明label

從edgelist讀取圖

# 從edgelist讀取圖
g = nx.read_edgelist('edglist.txt')
nx.draw(g, with_labels= True)

保存圖

plt.savefig("path.png")

networkx–nx.draw()參數(shù)

x.draw()方法,至少接受一個參數(shù):待繪制的網(wǎng)絡(luò)G

運(yùn)行樣式

  • node_size:指定節(jié)點(diǎn)的尺寸大小(默認(rèn)是300)
  • node_color:指定節(jié)點(diǎn)的顏色 (默認(rèn)是紅色,可以用字符串簡單標(biāo)識顏色,例如'r'為紅色,'b'為綠色等)
  • node_shape:節(jié)點(diǎn)的形狀(默認(rèn)是圓形,用字符串'o'標(biāo)識)
  • alpha: 透明度 (默認(rèn)是1.0,不透明,0為完全透明)
  • width: 邊的寬度 (默認(rèn)為1.0)
  • edge_color: 邊的顏色(默認(rèn)為黑色)
  • style: 邊的樣式(默認(rèn)為實(shí)現(xiàn),可選: solid|dashed|dotted,dashdot)
  • with_labels: 節(jié)點(diǎn)是否帶標(biāo)簽(默認(rèn)為True)
  • font_size: 節(jié)點(diǎn)標(biāo)簽字體大小 (默認(rèn)為12)
  • font_color: 節(jié)點(diǎn)標(biāo)簽字體顏色(默認(rèn)為黑色)

運(yùn)用布局

  • circular_layout:節(jié)點(diǎn)在一個圓環(huán)上均勻分布
  • random_layout:節(jié)點(diǎn)隨機(jī)分布
  • shell_layout:節(jié)點(diǎn)在同心圓上分布
  • spring_layout:用Fruchterman-Reingold算法排列節(jié)點(diǎn)(樣子類似多中心放射狀)
  • spectral_layout:根據(jù)圖的拉普拉斯特征向量排列節(jié)點(diǎn)

添加文本

用plt.title()方法可以為圖形添加一個標(biāo)題,該方法接受一個字符串作為參數(shù)。

fontsize參數(shù)用來指定標(biāo)題的大小。例如:plt.title(“BA Networks”, fontsize = 20)。

如果要在任意位置添加文本,則可以采用plt.text()方法。

總結(jié)

以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

桂东县| 原平市| 龙州县| 咸阳市| 从化市| 天长市| 宁都县| 从化市| 县级市| 湖州市| 泗洪县| 美姑县| 达孜县| 连山| 安阳市| 固安县| 广宁县| 柘城县| 唐海县| 南投县| 凌源市| 永春县| 南京市| 鄂伦春自治旗| 德令哈市| 巩留县| 汪清县| 息烽县| 海安县| 昆明市| 阿拉善右旗| 同心县| 塔河县| 玛纳斯县| 永仁县| 玉门市| 定结县| 汾西县| 水城县| 蒲城县| 霍林郭勒市|