如何在Python中绘制有序树?

0 投票
1 回答
1893 浏览
提问于 2025-04-16 23:14

我有一个XML文件,它的基本结构是一个有序树。我在表示这个树的时候用到了有向图(digraph),然后我想把这个树画出来。假设这个有向图叫做G,我写了以下代码:

map = dict(zip(id,tag)) # map from id to label
pos = nx.pydot_layout(G,prog = 'dot')
labels = nx.draw_networkx_labels(G, pos, map) 
nx.draw_networkx(G, pos, False, node_size = 1000, node_color = color)
plt.show()

但是我画出来的树不是有序的,兄弟节点的顺序和原来的顺序不一样。

我想知道怎么在Python中绘制一个有序树,谢谢。

1 个回答

1

不要把一个变量命名为 map,因为Python里已经有一个叫 map 的内置函数了。

你可以使用 OrderedDict 来保持项目的顺序:

from collections import OrderedDict
from itertools import izip
themap = OrderedDict(izip(id,tag)) # map from id to label

如果你的Python版本低于2.7或3.2,你也可以从 PyPI 下载这个库。

撰写回答