簡體   English   中英

給定鄰接矩陣,如何用matplotlib繪制圖形?

[英]Given an adjacency matrix, How to draw a graph with matplotlib?

我有一個由其鄰接矩陣(一個numpy數組)描述的無向圖,我想繪制它,頂點放在一個n正多邊形中。 此代碼有效:

n = adyacency_mathix.shape[0]
axis = np.linspace(0, 2*np.pi, n, endpoint=False)
x, y = np.cos(axis), np.sin(axis)
for i in xrange(n):
    for j in xrange(i + 1, n):
        if self.matrix[i, j] == 1:
            pyplot.plot((x[i], x[j]), (y[i], y[j]), color = 'blue')
pyplot.show()

但可以優化。

如果您只想減少編寫的代碼量,那么您可能對熱門的networkx項目感興趣。

import matplotlib.pyplot as plt
import networkx as nx

# Generating sample data
G = nx.florentine_families_graph()
adjacency_matrix = nx.adjacency_matrix(G)

# The actual work
# You may prefer `nx.from_numpy_matrix`.
G2 = nx.from_scipy_sparse_matrix(adjacency_matrix)
nx.draw_circular(G2)
plt.axis('equal')

佛羅倫薩圓形圖

免責聲明:我是networkx

暫無
暫無

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

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