NetworkX 是一个用于创建、操作和研究复杂网络结构、动态和功能的 Python 库。它提供了丰富的图论算法和数据结构,适用于各种网络分析任务。
假设我们有一个无向图,并且我们想根据边的颜色来生成图例。以下是一个示例代码:
import networkx as nx
import matplotlib.pyplot as plt
# 创建一个无向图
G = nx.Graph()
# 添加节点和边
G.add_edge(1, 2, color='red')
G.add_edge(2, 3, color='blue')
G.add_edge(3, 4, color='green')
# 获取边的颜色
edge_colors = [d['color'] for u, v, d in G.edges(data=True)]
# 绘制图
pos = nx.spring_layout(G)
nx.draw(G, pos, edge_color=edge_colors, with_labels=True)
# 创建图例
handles = [plt.Line2D([0], [0], color=color, lw=2) for color in set(edge_colors)]
labels = list(set(edge_colors))
plt.legend(handles, labels, loc='upper right', title='Edge Colors')
# 显示图形
plt.show()
nx.draw
函数中正确指定了 edge_color
参数。plt.legend
函数的 loc
参数来调整图例的位置。spring_layout
、circular_layout
等)来调整节点位置。通过以上方法,你可以基于边缘颜色生成 NetworkX 图例,并解决常见的绘图问题。
领取专属 10元无门槛券
手把手带您无忧上云