enter image description here

(从左上角开始将 node 标记为顺时针1到4)

在networkx中,如何更改边13以使其位于正方形之外,如右图所示?

(Note: I am not asking for the function "draw_planar")

谢谢

推荐答案

一种可能的 Select 是使用Connection styles for annotations.

您可以从以classic 方式绘制 node 开始:

fig, ax = plt.subplots(figsize=(4, 4))

nx.draw_networkx_nodes(
    G, pos, ax=ax,
    node_color="lime", alpha=0.4, edgecolors="black",
)

nx.draw_networkx_labels(G, pos, ax=ax)

然后分两步进行边缘处理,以实施connectionstyle:

RADIUS = 1.2
EDGE_TO_BEND = (1, 3)

nx.draw_networkx_edges(
    G, pos, ax=ax, edgelist=[e for e in G.edges() if e != EDGE_TO_BEND]
)

nx.draw_networkx_edges(
    G, pos, ax=ax, edgelist=[EDGE_TO_BEND],
    edge_color="tab:red", width=4, alpha=0.5,
    arrows=True, connectionstyle=f"arc3,rad={RADIUS}",
)

ax.axis("off")

plt.show()

enter image description here

使用的图表(G):

import networkx as nx

G = nx.Graph([(1, 2), (2, 3), (3, 4), (4, 1), (1, 3), (2, 4)])

pos = {1: (0, 1), 2: (1, 1), 3: (1, 0), 4: (0, 0)} # square-shape

Python相关问答推荐

时间序列分解

为什么我的Python代码在if-else声明中的行之前执行if-else声明中的行?

Pandas - groupby字符串字段并按时间范围 Select

如何在Python脚本中附加一个Google tab(已经打开)

梯度下降:简化要素集的运行时间比原始要素集长

改进大型数据集的框架性能

如何使用SentenceTransformers创建矢量嵌入?

Tkinter菜单自发添加额外项目

搜索按钮不工作,Python tkinter

基于Scipy插值法的三次样条系数

使用字典或列表的值组合

当单元测试失败时,是否有一个惯例会抛出许多类似的错误消息?

使用Python TCP套接字发送整数并使用C#接收—接收正确数据时出错

数据框,如果值在范围内,则获取范围和

为什么按下按钮后屏幕的 colored颜色 保持不变?

Match-Case构造中的对象可调用性测试

如何在表单中添加管理员风格的输入(PDF)

Fake pathlib.使用pyfakefs的类变量中的路径'

极地数据帧:ROLING_SUM向前看

如何在开始迭代自定义迭代器类时重置索引属性?