Computer >> Máy Tính >  >> Lập trình >> Python

Làm cách nào để tùy chỉnh việc hiển thị các nhãn cạnh bằng networkx trong Matplotlib?

Để đặt networkx bù trừ nhãn cạnh, chúng ta có thể thực hiện các bước sau -

  • Đặt kích thước hình và điều chỉnh phần đệm giữa và xung quanh các ô phụ.
  • Khởi tạo một biểu đồ với các thuộc tính cạnh, tên hoặc biểu đồ.
  • Thêm nhiều nút.
  • Định vị các nút bằng thuật toán hướng lực Fruchterman-Reingold.
  • Vẽ biểu đồ G bằng Matplotlib.
  • Vẽ các nhãn cạnh.
  • Để hiển thị hình này, hãy sử dụng show () phương pháp.

Ví dụ

import matplotlib.pylab as plt
import networkx as nx

plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True

G = nx.DiGraph()
G.add_nodes_from([1, 2, 3, 4])
G.add_edges_from([(1, 2), (2, 3), (3, 4), (4, 1), (1, 3)])

pos = nx.spring_layout(G)

for u, v, d in G.edges(data=True):
d['weight'] = 3

edges, weights = zip(*nx.get_edge_attributes(G, 'weight').items())

nx.draw(G, pos, node_color='b', edge_color=weights,
width=2, with_labels=True)

nx.draw_networkx_edge_labels(G, pos,
                              {
                                 (1, 2): "x", (2, 3): "y", (3, 4): "w",
                                 (4, 1): "z", (1, 3): "v"
                              },
                              label_pos=0.75
                              )
plt.show()

Đầu ra

Làm cách nào để tùy chỉnh việc hiển thị các nhãn cạnh bằng networkx trong Matplotlib?