如果您知道怎么做,那就太棒了,谢谢 - 请告诉我们!辅助问题,如何定义默认顺序以使节点垂直/任意方式排列?
我当前的代码:
`
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 天 - 所以非常感谢任何帮助!
因此,一种解决方案是使用 cytoscape 库,它允许您在浏览器中绘制交互式图形。
由于这是 Javascript,因此您需要能够与 jupyter 良好配合的 Python 绑定。我看到两个
Dash Cytoscape 看起来得到了更好的支持,尽管在 jupyter 中运行可能会更困难
或者您可以尝试这个项目,它看起来更适合您的需求,但作为一个项目可能不太活跃