【问题标题】:How to draw an ordered tree in python?如何在python中绘制有序树?
【发布时间】:2011-08-09 20:33:48
【问题描述】:

我有一个 XML 文件,其基础结构是有序树。我在表示这棵树的网络中使用有向图,然后我想画这棵树。假设有向图是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()

但我无法获得有序树。 silbing节点的顺序不是原来的顺序。

我想知道如何在 python 中绘制有序树,谢谢,

【问题讨论】:

    标签: python graph tree


    【解决方案1】:

    不要调用变量map,有一个名为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,您也可以get it from PyPI

    【讨论】:

    • 谢谢,我真的不应该命名变量映射。但我仍然不知道如何绘制这棵有序树。 draw_networkx 没有给我正确的树
    • 你将不得不给予更多的拘留“不是正确的树”。尝试制作一棵具有相同基本结构的小得多的树,然后尝试这样做,这样您就可以找出问题所在。
    猜你喜欢
    • 2019-09-23
    • 1970-01-01
    • 1970-01-01
    • 2015-06-06
    • 1970-01-01
    • 2016-02-16
    • 1970-01-01
    • 1970-01-01
    • 2017-02-12
    相关资源
    最近更新 更多