当前位置: 首页 > 面试题库 >

Python中的树图

端木乐语
2023-03-14
问题内容

我想使用Python绘制树。决策树,组织结构图等。有什么图书馆可以帮助我呢?


问题答案:

有graphviz- http://www.graphviz.org/。它使用“
DOT”语言绘制图形。您既可以自己生成DOT代码,也可以使用pydot-
https://code.google.com/p/pydot/。您还可以使用networkx-
http:
//networkx.lanl.gov/tutorial/tutorial.html#drawing-graphs
,它可以很容易地绘制到graphviz或matplotlib。


networkx + matplotlib + graphviz为您提供最大的灵活性和功能,但是您需要安装很多东西。

如果需要快速解决方案,请尝试:

安装Graphviz。

open('hello.dot','w').write("digraph G {Hello->World}")
import subprocess
subprocess.call(["path/to/dot.exe","-Tpng","hello.dot","-o","graph1.png"]) 
# I think this is right - try it form the command line to debug

然后安装pydot,因为pydot已经为您完成了这项工作。然后,您可以使用networkx来“驱动” pydot。



 类似资料:
  • 问题内容: 如何获取Python给定目录中所有文件(和目录)的列表? 问题答案: 这是遍历目录树中每个文件和目录的一种方式:

  • 我试图在Python中做一个函数,它接受树的任意节点,并根据节点给出的列表填充列表。 考虑到以下绘制糟糕的树: 例如,如果我们从节点5开始,我们应该得到: 包含具有相同父节点的所有节点的列表,包括我们从(4和5)开始的节点。 任何子节点,但不是其子节点(6) 父节点和具有相同父节点的任何父节点,以及它们的父节点,等等,直到我们到达根节点,但不包括根节点(在本例中只有2和3个,但如果树更深,我们开始

  • 在给定嵌套字典的情况下,如何构建二叉树?理想情况下,我希望访问根,然后以规则的深度优先或广度优先方式遍历树。 在从嵌套字典构建时间或空间方面的树时,我并不非常关心效率,所以我不介意在这个过程中使用额外的数据结构。我的主要关注点是一个全面而直观的解决方案。我现在不知道从哪里开始,所以非常感谢任何帮助。 这是二叉树的样子:

  • 我正在尝试打印一棵树,问题是我找不到任何其他方法,只能像这样打印它: 但有没有办法像这样打印它: 这是我的代码: 在这里,我为树节点创建了一个类,我知道代码很糟糕,但我仍然是初学者,我将在未来改进它。我使用列表来存储子列表和链表来对兄弟姐妹进行排序,因为它稍后在尝试打印实际树时会很有用。 我打印树的方式是这样的:打印当前节点,如果当前节点有任何子节点,则转到子节点,如果没有,则转到当前节点的父节点

  • 我有一个二叉树与7个元素,目前看起来像这样: 我试图按后序遍历它,并在我去的时候重新定义元素,这样它看起来像这样: 使用以下函数,它是我的类: 我的类的其余部分与这里的差不多。我通过在循环中添加数字1-7来填充树。 但是,当我调用,然后打印树时,树是一样的。我猜这与Python传递参数的方式有关(我是一名C程序员),但我不知道如何解决这个问题。我的全部代码都可以在这里找到。

  • kd树python实现 1. 首先在构造kd树的时需要寻找中位数,因此用快速排序来获取一个list中的中位数 import matplotlib.pyplot as plt import numpy as np class QuickSort(object): "Quick Sort to get medium number" def __init__(self, low, h