Построение графов с использованием двух нижних собственных значений и собственных векторов
Как использовать собственные векторы, соответствующие двум самым низким собственным значениям (отличным от 0), в качестве координат x,y для построения графика?
У меня есть массивы собственных значений и собственных векторов из лапласиана графа узлов. Я хочу сделать что-то похожее на следующую ссылку, которая находится в MATLAB, но в Python. Кроме того, вместо вектора Филдера я также хочу, чтобы следующий вектор был больше, чем у Филдера:
https://www.mathworks.com/examples/matlab/mw/matlab-ex64540792-partition-graph-with-laplacian-matrix
Заранее спасибо!
1 ответ
Этот ответ предполагает, что у вас уже есть узлы в списке nodelist
и два вектора vec1
а также vec2
которые в том же порядке.
Networkx использует dict (обычно называется pos
) для которого pos[u]
это (x,y) координаты узла u
,
import networkx as nx
#your code here to define network and find the vectors.
#Please edit a simple version of this code into your question so I can
#add it here.
pos = {node:(x,y) for node, x, y in zip(nodelist, vec1, vec2)}
nx.draw_networkx(G, pos=pos)