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

Networkx Planar Embedding使用困惑:自定义嵌入未达预期

关于NetworkX PlanarEmbedding半边添加方法的疑问

我运行以下代码,想要生成一个带有指定平面嵌入的平面图:

import numpy as np
import matplotlib.pyplot as plt
import networkx as nx

# 定义带有平面嵌入的图
H=nx.PlanarEmbedding()
H.add_half_edge_cw(1,2,None)
H.add_half_edge_cw(2,1,None)
H.add_half_edge_ccw(2,3,1)
H.add_half_edge_ccw(3,2,None)
H.add_half_edge_ccw(3,1,2)
H.add_half_edge_cw(1,3,2)
H.add_half_edge_ccw(2,4,1)
H.add_half_edge_ccw(4,2,None)
H.add_half_edge_cw(4,3,2)
H.add_half_edge_cw(3,4,1)

# 尝试按上述嵌入绘制图,如果嵌入不正确则打印'Fail'
try:
  H.check_structure()
  pos=nx.combinatorial_embedding_to_pos(H)
  nx.draw(H,pos,with_labels=True)
except:
  print('Fail')

实际输出的图和我预期的不一致。我不清楚定义H的方式哪里出错了,可能是没搞懂add_half_edge_cw的工作原理,希望能得到更清晰的解释。

比如我添加了H.add_half_edge_ccw(2,4,1),我原本以为这表示节点2的边2-4的逆时针邻居是边2-1,但实际输出里,节点2的边2-4的逆时针邻居明显是2-3,这和我的预期不符。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 22:05:02