我正在寻找一种在 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 中的
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 文件。