以交互方式将 DAG 渲染到 Jupyter 笔记本中?

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

如果您知道怎么做,那就太棒了,谢谢 - 请告诉我们!辅助问题,如何定义默认顺序以使节点垂直/任意方式排列?

我当前的代码:

`

import networkx as nx
import matplotlib.pyplot as plt

# Define the graph (nb only need to define the edges; the nodes are to be inferred)
edges=[("$S_{t-2}$", "$S_{t-1}$"),
       ("$S_{t-1}$", "$S_t$")]

# Construct the graph using networkx
G = nx.DiGraph()
for edge in edges:
    G.add_edge(edge[0], edge[1])

# Render the graph with mpl
pos = nx.spring_layout(G)
nx.draw(G, pos, with_labels=True, node_size=3000, node_color="skyblue", font_size=20, font_weight="bold", font_color="black", edge_color="black", linewidths=2, arrowsize=30)
plt.show()

以上效果很好:

[我的图表]

但是我想以有趣的“弹性”方式生成一个交互式图表(您可以在其中移动节点),但具有合理/常规的默认值?

我已经尝试了大约 0.5 天 - 所以非常感谢任何帮助!

python math statistics
1个回答
0
投票

因此,一种解决方案是使用 cytoscape 库,它允许您在浏览器中绘制交互式图形。

由于这是 Javascript,因此您需要能够与 jupyter 良好配合的 Python 绑定。我看到两个

  • Dash Cytoscape 看起来得到了更好的支持,尽管在 jupyter 中运行可能会更困难

  • 或者您可以尝试这个项目,它看起来更适合您的需求,但作为一个项目可能不太活跃

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