注意:这篇文章与this one直接相关,只是我在pyvis中寻找一个解决方案。
我想画一个多边有向图,也就是说,每对节点都与两个相反方向的边相连。要做到这一点,重要的是,这两个边缘不重叠的视觉。在使用networkx.draw()时,可以通过将connectionstyle='arc3, rad = 0.1'传递给nx.draw() (如描述的here )来解决这个问题。但是,我使用的是pyvis中的解决方案。
使用networkx.draw()的示例
import networkx
from pyvis.network import Network
# create a graph
G = nx.MultiDiGraph()
G.add_edges_from([
(1, 2),
(2, 3),
(3, 2),
(2, 1),
])
# draw with networkx using the proposed solution
nx.draw(G, connectionstyle='arc3, rad = 0.1')

# This is how the graph currently looks with pyvis
nt = Network('500px', '500px',directed=True)
nt.from_nx(G)
nt.show('nx.html')

发布于 2022-09-29 22:14:45
你用的是什么版本?我刚试着运行你的代码:
import networkx as nx
from pyvis.network import Network
# create a graph
G = nx.MultiDiGraph()
G.add_edges_from([
(1, 2),
(2, 3),
(3, 2),
(2, 1),
])
# This is how the graph currently looks with pyvis
nt = Network('500px', '500px',directed=True)
nt.from_nx(G)
nt.show('nx.html')我得到了你想要的结果:

您可以在这里找到输出HTML:https://pastecode.io/s/anav9333
我使用的是pyvis=0.3.0版本
https://stackoverflow.com/questions/73500010
复制相似问题