我对Python(以及一般的编程)完全陌生。我正在使用的程序生成了一个gpickle文件,我希望在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点。
答案 0 :(得分:1)
您可以尝试将networkx图转换为"字典词典"使用networkx.convert.to_dict_of_dicts或SciPy adjacency matrix。然后你可以使用matplotlib' s matshow()
之类的东西来形象化它。
答案 1 :(得分:1)
给出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()
的产率