【问题标题】:graph rendering in python (flowchart visualization) [closed]python中的图形渲染(流程图可视化)[关闭]
【发布时间】:2018-03-05 23:36:25
【问题描述】:

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

正在寻找一个 python 库来可视化此类图形数据。

用python写的库或者python绑定都可以

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

【问题讨论】:

标签: python graph data-visualization graphviz


【解决方案1】:

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

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

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

我最熟悉的python-Graphviz库是pygraphviz,非常棒。

另外两个是pydotyapgvb。我至少使用过这两种方法。每个都比 pygraphviz 小(根据您的用例,这可能是一个优势);此外,pygraphviz 都没有记录。

幸运的是,这三个 python 库都是对 Graphviz 的薄包装,因此没有一个隐藏轻量级、优雅的 Graphviz 语法(dot 语言)。

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

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];
}

【讨论】:

  • 我认为问题是关于自动生成器。抱歉,我没看过,但是自动流程图生成有什么好处呢? AFAIK 图表和花哨的 UML 东西,应该有助于重新思考解决方案并获得代码以外的观点,所以让它自动化对我来说是一次尝试。
  • 可能值得一提的是,上面的流程图是使用下面的代码获得的.
【解决方案2】:

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

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

【讨论】:

  • 一直是极简主义解决方案的粉丝(直接创建点文件),+1 来自我。
【解决方案3】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-28
    • 1970-01-01
    • 1970-01-01
    • 2018-09-23
    • 2020-12-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多