在 colab 中使用 networkx 绘制树

plotting tree with networkx at colab

我有图,表示为节点、边和节点的标签,表示为[节点、边、标签]

import matplotlib.pyplot as plt
import networkx as nx

G = nx.DiGraph()
G.add_nodes_from(nodes)
G.add_edges_from(edges)
pos = nx.spring_layout(G)  # positions for all nodes

nx.draw_networkx_nodes(G, pos, node_size=1000, linewidths=3)
nx.draw_networkx_edges(G, pos)
nx.draw_networkx_labels(G, pos, labels)
plt.show()

当我在 colab 上 运行 它得到的是一团糟:

我需要它是一棵树,根 (pos) 在顶部,文本可读。 另外,我正在使用 Colab,所以 pygraphviz 不是一个选项。

谢谢!

如果您想在 Colab 中使用 pygraphviz

!apt install libgraphviz-dev
!pip install pygraphviz
import pygraphviz as pgv

这是一个 example notebook

对我来说,我更喜欢 pyvis,因为您可以拖动节点。这是一个如何将 pyvis 与 networkx 一起使用的示例:networkx pyvis.ipynb