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

如何在NetworkX绘制的Ego Network(自我中心网络)中添加箭头?

给自我中心网络添加箭头的解决方案

要实现从ego节点指向其邻居的箭头效果,你可以单独绘制ego与邻居间的有向边,具体修改后的代码如下:

import networkx as nx
import matplotlib.pyplot as plt

# 保留原无向图结构
G = nx.Graph()
G.add_edges_from([('A', 'B'), ('A', 'C'),
                  ('B', 'C'), ('E', 'F'),
                  ('D', 'E'), ('A', 'D'),
                  ('D', 'C'), ('C', 'F'),
                  ('D', 'E')])

ego = 'A'
pos = nx.spring_layout(G)

# 绘制基础无向图
nx.draw(G, pos, node_color="lavender",
        node_size=800, with_labels=True)

# 突出显示ego节点
options = {"node_size": 1200, "node_color": "r"}
nx.draw_networkx_nodes(G, pos, nodelist=[ego], **options)

# 提取ego的所有邻居,创建有向边列表
ego_neighbors = list(G.neighbors(ego))
ego_directed_edges = [(ego, neighbor) for neighbor in ego_neighbors]

# 绘制从ego指向邻居的有向边,添加箭头
nx.draw_networkx_edges(
    G, pos,
    edgelist=ego_directed_edges,
    arrowstyle='->',  # 箭头样式
    arrowsize=20,     # 箭头大小
    edge_color='black',  # 边颜色,可根据需求调整
    width=1.5         # 边宽度,突出箭头边
)

plt.show()

关键修改说明:

  • 保留原无向图的绘制逻辑,确保其他节点间的边仍保持无向样式
  • 通过G.neighbors(ego)获取ego节点的所有直接邻居,生成从ego指向邻居的有向边列表
  • 使用nx.draw_networkx_edges单独绘制这些有向边,通过arrowstyle和arrowsize参数设置箭头的样式与大小,同时调整边宽让箭头更显眼

内容的提问来源于stack exchange,提问作者Soumya Mondal

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 04:10:17