首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用pyvis分别显示所有边的方式绘制多边有向图

用pyvis分别显示所有边的方式绘制多边有向图
EN

Stack Overflow用户
提问于 2022-08-26 11:01:34
回答 1查看 298关注 0票数 1

注意:这篇文章与this one直接相关,只是我在pyvis中寻找一个解决方案。

我想画一个多边有向图,也就是说,每对节点都与两个相反方向的边相连。要做到这一点,重要的是,这两个边缘不重叠的视觉。在使用networkx.draw()时,可以通过将connectionstyle='arc3, rad = 0.1'传递给nx.draw() (如描述的here )来解决这个问题。但是,我使用的是pyvis中的解决方案。

使用networkx.draw()的示例

代码语言:javascript
复制
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')

代码语言:javascript
复制
# This is how the graph currently looks with pyvis
nt = Network('500px', '500px',directed=True)
nt.from_nx(G)
nt.show('nx.html')

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-09-29 22:14:45

你用的是什么版本?我刚试着运行你的代码:

代码语言:javascript
复制
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版本

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73500010

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档