最近写论文画了许多图,在这里记录一些。当然,如果仅仅是展示性图片的话也可以使用visio,但是这里我仍然想探究一下如何使用pyhon画出美观的网络拓扑图。
一、画出网络拓扑图
给出邻接矩阵,画出网络的拓扑图:
import networkx as nx
import matplotlib.pyplot as plt
import numpy as np
G = nx.Graph()
Matrix = np.array(
[
[0, 0, 1, 1, 1, 1], # a
[0, 0, 1, 1, 0, 1], # b
[1, 1, 0, 0, 1, 1], # c
[1, 1, 0, 0, 1, 1], # d
[1, 0, 1, 1, 0, 1], # e
[1, 1, 1, 1, 1, 0],
])
for i in range(len(Matrix)):
for j in range(len(Matrix)):
if Matrix[i, j] != 0:
G.add_edge(i, j)
pos = nx.random_layout(G)
nx.draw(G, node_size=50, node_color='black', edge_color='b', width=2)
plt.show()
效果如下:
也可以根据需求改变节点或链路的形状