首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python中的图形渲染(流程图可视化)

python中的图形渲染(流程图可视化)
EN

Stack Overflow用户
提问于 2010-12-17 14:50:26
回答 3查看 84.1K关注 0票数 36

以可视化由python编码的边连接的节点序列。

寻找一个python库来可视化这样的图形数据。

用python或python绑定编写的库都可以。

(我知道Visustin,但正在寻找替代方案)

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-12-17 15:42:11

在我看来Graphviz是最好的选择。

Graphviz是首屈一指的图形渲染/布局库;它成熟、稳定、开源且免费。它不是一个专用的流程图或图表包,但它的核心用例--即高效美观地呈现由节点和边缘组成的对象,显然包含了流程图绘制--特别是因为它的api允许用户在布局上设置各种约束,以鼓励以各种格式呈现--例如,您可以要求同一级别的所有节点(从根开始的相同数量的父节点)呈现在单个居中对齐的行中。

Graphviz不是一个python库(它是用C编写的);但是,有一些高质量的python绑定可用。

我最熟悉的python-Graphviz库是pygraphviz,它非常优秀。

另外两个是pydotyapgvb。这两种方法我都用过至少几次。它们都比pygraphviz小(这可能是一个优势,这取决于您的用例);此外,两者都没有像pygraphviz那样有文档记录。

幸运的是,这三个python库都是Graphviz的薄薄包装器,因此它们都掩盖了轻量级、优雅的Graphviz语法(点语言)。

这是我用来创建下面的小“流程图”的代码(用graphviz的点语言):

代码语言:javascript
复制
digraph {

  node [    fill=cornflowerblue,
            fontcolor=white,
            shape=diamond,
            style=filled];

  Step1 [   color=darkgoldenrod2,
            fontcolor=navy,
            label=start,
            shape=box];

  Step2;

  Step3a [  style=filled,
            fillcolor=grey80,
            color=grey80,
            shape=circle,
            fontcolor=navy];

  Step1  -> Step2;
  Step1  -> Step2a;
  Step2a -> Step3a;
  Step3;
  Step3a -> Step3;
  Step3a -> Step2b;
  Step2  -> Step2b;
  Step2b -> Step3;
  End [ shape=rectangle,
        color=darkgoldenrod2,
        fontcolor=navy];
  Step3  -> End [label=193];
}
票数 49
EN

Stack Overflow用户

发布于 2010-12-17 16:55:09

像doug一样,我建议使用Graphviz。

我还想提一下,您也可以直接在非常简单的dot language中编写图形(然后可以使用Graphviz或其他工具绘制它们);这是使用pydot的更轻量级的替代方案,不需要依赖于任何模块。

票数 11
EN

Stack Overflow用户

发布于 2012-06-26 03:23:54

gprof2dot.py可以自动分析和可视化程序中的执行流程。它可以在ActiveState代码中以reciple 578138的形式找到。请注意程序末尾的批处理文件。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4468364

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档