用Python从类中绘制树形图的简单方法?

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

我正在寻找一种在 Python 中从类创建树的简单方法。

我的课程示例:

class ChanceNode:
    def __init__(self, *, name, children):
        self.name = name
        self.children = children

class RootNode:
    def __init__(self, *, name, children):
        self.name = name
        self.children = children

etc...

如何从几个已定义的类中绘制(=以 .jpg 或等效形式可视化)简单的树?

python python-3.x graph tree
1个回答
0
投票

您可以使用 Python 中的

graphviz
库创建简单的树可视化。首先,如果您还没有安装该库,则需要安装:

pip install graphviz

然后,您可以使用以下代码来可视化您的树结构:

from graphviz import Digraph

class ChanceNode:
    def __init__(self, *, name, children):
        self.name = name
        self.children = children

class RootNode:
    def __init__(self, *, name, children):
        self.name = name
        self.children = children

def draw_tree(node, dot=None):
    if dot is None:
        dot = Digraph()
    dot.node(node.name)
    for child in node.children:
        dot.edge(node.name, child.name)
        draw_tree(child, dot)
    return dot

# Example usage
root = RootNode(name="Root", children=[
    ChanceNode(name="Child1", children=[]),
    ChanceNode(name="Child2", children=[
        ChanceNode(name="Grandchild1", children=[]),
        ChanceNode(name="Grandchild2", children=[]),
    ]),
])

dot = draw_tree(root)
dot.render("tree", format="jpg", cleanup=True)  # Renders the tree to a JPG file

此示例代码使用您提供的类定义树结构,然后使用

graphviz
将其可视化。它将把树结构渲染成名为“tree.jpg”的 JPG 文件。

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