如何制作交互式网络图?

问题描述 投票:0回答:2

我绘制了一个图形来突出显示天然气网络中的气流和方向,例如enter image description here

但是,我希望使其具有互动性。我尝试了多种方法但都失败了,有没有想法开发这个? 非常感谢!

networkx interactive
2个回答
6
投票

您可以使用 pyvis 包在静态 HTML 文件中获取交互式图表。

import networkx as nx
from pyvis.network import Network


# Create directed graph with networkx
G = nx.DiGraph()
G.add_nodes_from([
    ('1', {'namespace': ['1n'], 'workload': {1: '1w'}}),
    ('2', {'namespace': ['2n'], 'workload': '2w'}),
    ('3', {'namespace': ['3n'], 'workload': '3w'}),
])
G.add_edges_from([
    ('1', '2', {'weight': 1}),
    ('2', '1', {'weight': 1}),
    ('2', '3', {'weight': 5}),
])

# Plot with pyvis
net = Network(
    directed = True,
    select_menu = True, # Show part 1 in the plot (optional)
    filter_menu = True, # Show part 2 in the plot (optional)
)
net.show_buttons() # Show part 3 in the plot (optional)
net.from_nx(G) # Create directly from nx graph
net.show('test.html')

输出 HTML 文件将显示以下内容:


0
投票

你可能需要仔细研究一下。我想说

pyvis
不太好。除了整数或字符串之外,它不能将任何对象作为节点。非常严格。

这是plotly 的文档 https://plotly.com/python/network-graphs/

© www.soinside.com 2019 - 2024. All rights reserved.