簡體   English   中英

如何從python中的networkx對象創建加權2D數組

[英]how to create weighted 2D array from networkx object in python

我是Python(和一般編程)的新手。 我正在使用的程序已經生成了一個斑點文件,我想在2D數組中可視化該文件的內容。

到目前為止,這是我所做的:

import pickle
import numpy as np
import networkx as nx
import matplotlib.pyplot as plt

P = np.load('/pathtoobject.gpickle')

結果是這一行文本:

networkx.classes.graph.Graph object at 0x1d217d0

我已經能夠使用...創建無向圖

nx.draw(P)
plt.show()

...但如果可能的話,我想創建一個加權2D數組。 我知道該對象具有83x83點。

您可以嘗試使用networkx.convert.to_dict_of_dictsSciPy鄰接矩陣將networkx圖轉換為“字典詞典”。 然后,您可以使用matplotlib的matshow()類的東西matshow()進行可視化。

給定一個圖,例如G

import numpy as np
import networkx as nx
import matplotlib.pyplot as plt

np.random.seed(2014)
A = np.random.randn(83, 83)
G = nx.from_numpy_matrix(A)

您可以使用nx.to_numpy_matrix來獲取圖的鄰接矩陣。 正如ASGM所建議的,您可以使用plt.matshow繪制“熱圖”:

B = nx.to_numpy_matrix(G)
plt.matshow(B)
plt.colorbar()
plt.show()

產量 在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM