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
相关产品推荐
相关产品推荐

