Python将ndarrays转换为图形

提问

因此,我目前正在研究此Python程序,该程序基本上是通过某种算法来计算给定无向图中的节点位移.我的输出由一个numpy ndarray和另一个numpy ndarray形式的邻接矩阵组成,分别保存每个节点的坐标(2D).

我一直在研究绘制结果图的方法,偶然发现了igraph和NetworkX.我还没有使用它们,但是我知道它们可以将邻接矩阵转换为图形,但是在这种情况下,我不会使用坐标.因此,我想知道如何将两者同时用于图形化图形显示?

我可以想象我将不得不使用两个数组来创建不同类型的对象,而对象本身可以由NetworkX / igraph转换.

最佳答案

networkx解决方案:

draw nx.function:接受位置的第二个可选参数:

import numpy as np
import networkx as nx
import pylab as plt

A = np.array([[0,0,1,0],[1,0,0,0],[1,0,0,1],[1,0,0,0]])
G = nx.DiGraph(A)

pos = [[0,0], [0,1], [1,0], [1,1]]
nx.draw(G,pos)
plt.show()