You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在networkx绘图中显示DiGraph有向图的边方向箭头?

解决方案

你使用NetworkX绘制有向图不显示箭头,可通过显式指定箭头参数、调整绘图顺序实现,修改后的可运行代码如下:

import networkx as nx
import matplotlib.pyplot as plt

G = nx.DiGraph()
time = [1100,2000,1500]
a = [[1, 2], [1, 3], [2, 3]]
G.add_edges_from(a)

pos=nx.spring_layout(G) 

# 先绘制有向边,显式开启箭头配置
nx.draw_networkx_edges(G, pos, arrows=True, arrowstyle='->', arrowsize=20, edge_color='black')
# 绘制节点
nx.draw_networkx_nodes(G, pos, node_size=time[:len(pos)], node_color='Gray', node_shape='o')
# 绘制节点文本标签
nx.draw_networkx_labels(G, pos)
# 绘制边标签
edge_labels = ['A', 'B', 'C']
lst = [[1, 2], [1, 3], [2, 3]]
nx.draw_networkx_edge_labels(G,pos,edge_labels=dict(zip(map(tuple,lst), edge_labels)))

# 隐藏坐标轴
plt.axis('off')
# 渲染显示图像
plt.show()

关键配置说明

  • 拆分绘图逻辑,显式调用nx.draw_networkx_edges绘制边,添加arrows=True参数强制开启箭头渲染,同时可通过arrowstyle自定义箭头样式、arrowsize调整箭头大小,避免默认配置下箭头不显示或者过小
  • 调整绘图顺序为「边→节点→标签」,避免节点元素遮挡箭头
  • 补充matplotlib渲染逻辑,移除无意义的G.size(500)语句(该方法用于返回图的边权总和,无绘图控制作用)

内容的提问来源于stack exchange,提问作者Md.Shams Araf Shovon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 00:15:04