美文网首页
Win10 python 下安装Graphviz及其使用

Win10 python 下安装Graphviz及其使用

作者: 火卫控 | 来源:发表于2020-06-10 20:20 被阅读0次

Graphviz是什么

Graphviz 是一款由 AT&T Research 和 Lucent Bell 实验室开源的可视化图形工具,可以很方便的用来绘制结构化的图形网络,支持多种格式输出。
Graphviz 的输入是一个用 dot 语言编写的绘图脚本,通过对输入脚本的解析,分析出其中的点、边及子图,然后根据属性进行绘制。
Graphviz layout 以简单的文本语言描述图形,并以实用的格式制作图表,如用于网页的 images 和 SVG ;用于放入在其它文件中或显示在交互式图形浏览器中的 PDF 和 Postscript 。


Graphviz安装与配置

1.安装Anaconda
2.安装graphviz
3.设置好环境变量

1.安装Anaconda

下载安装 Anaconda(开源的Python发行版本,最新版为3.7, 大小为466MB)
安装完后会自动添加相关路径到PATH环境变量,可以直接在终端cmd或者power shell界面输入python查看是否安装好。安装方法参考

2.安装graphviz

conda install graphviz 或者 pip install graphviz
如果报错,则选择安装python-graphviz
conda install python-graphviz

3.设置好环境变量

在anaconda安装目录下\Library\bin\graphviz里面有graphviz可执行文件,需要添加到系统变量path中,方便python调用
D:\program files\anacoda\Library\bin\graphviz


Graphviz使用案例

1.直接读取.gv文件渲染生成图片或.pdf文件
2.从创建表节点到生成渲染图

1.直接读取.gv文件渲染生成图片或.pdf文件

有向图a1.gv原文件

digraph G {

  subgraph cluster_0 {
    style=filled;
    color=lightgrey;
    node [style=filled,color=white];
    a0 -> a1 -> a2 -> a3;
    label = "process #1";
  }

  subgraph cluster_1 {
    node [style=filled];
    b0 -> b1 -> b2 -> b3;
    label = "process #2";
    color=blue
  }
  start -> a0;
  start -> b0;
  a1 -> b3;
  b2 -> a3;
  a3 -> a0;
  a3 -> end;
  b3 -> end;

  start [shape=Mdiamond];
  end [shape=Msquare];
}

渲染有向图python源码文件dot2pdf.py

#!/usr/bin/env python
# -*- encoding: utf-8 -*-
'''
@File    :   dot2pdf.py
@Time    :   2020/06/10 19:21:46
@Author  :   Ai Qiangyun 
@Version :   1.0
@Contact :   aqy0716@163.com
@License :   (C)Copyright 2020 SCAU
@Desc    :   None
'''
#通过.gv文件渲染转化为PDF和JPG文件
# here put the import lib

from graphviz import Source

#打开.gv有向图元文件,渲染格式为PDF
s = Source.from_file(r"D:\vscode_python_magic\graphviz-python\a1.gv",format='pdf')
print(s.source)

#打开渲染引擎,保存为。字符文件和指定的pdf文件,清除字符文件,------最后只剩下一个指定路径下和指定前缀名的PDF文件------
s.view(r"D:\vscode_python_magic\graphviz-python\fff1",cleanup=True)

渲染结果:


fff1.pdf截图

2.从创建表节点到生成渲染图

python代码如下:

#!/usr/bin/env python
# -*- encoding: utf-8 -*-
'''
@File    :   demo2.py
@Time    :   2020/06/10 19:51:28
@Author  :   Ai Qiangyun 
@Version :   1.0
@Contact :   aqy0716@163.com
@License :   (C)Copyright 2020 SCAU
@Desc    :   None
'''

# here put the import lib

from graphviz import Digraph

#创建表
dot = Digraph(comment='The Test Table')

# 添加圆点A,A的标签是Dot A
dot.node('A', 'Dot A')

# 添加圆点 B, B的标签是Dot B
dot.node('B', 'Dot B')
# dot.view()

# 添加圆点 C, C的标签是Dot C
dot.node('C', 'Dot C')
# dot.view()

# 创建一堆边,即连接AB的两条边,连接AC的一条边。
dot.edges(['AB', 'AC', 'AB'])
# dot.view()

# 在创建两圆点之间创建一条边
dot.edge('B', 'C', 'test')

# dot.view()

#数据类型
print(type(dot))
print(type(dot.source))

# 获取DOT source源码的字符串形式
print(dot.source) 
# // The Test Table
# digraph {
#   A [label="Dot A"]
#   B [label="Dot B"]
#   C [label="Dot C"]
#   A -> B
#   A -> C
#   A -> B
#   B -> C [label=test]
# }


# 保存source到文件,并提供Graphviz引擎
dot.render(directory=r"D:\vscode_python_magic\graphviz-python",filename = "fff4.gv", format = "pdf", view=True)

运行后生成两个文件 fff4.gv & fff4.gv.pdf 结果如下:

PS D:\program files\anacoda\Library\bin\graphviz> & d:/ruanjiancangku/python_projectkotin/venv/Scripts/python.exe d:/vscode_python_magic/graphviz-python/digraph_write_render.py
<class 'graphviz.dot.Digraph'>
<class 'str'>
// The Test Table
digraph {
        A [label="Dot A"]
        B [label="Dot B"]
        C [label="Dot C"]
        A -> B
        A -> C
        A -> B
        B -> C [label=test]
}

fff4.gv文件如下:

// The Test Table
digraph {
    A [label="Dot A"]
    B [label="Dot B"]
    C [label="Dot C"]
    A -> B
    A -> C
    A -> B
    B -> C [label=test]
}

pdf结果如下:


fff4.gv.pdf截图

安装过程中遇到问题

安装过程终于到一个问题记录一下:
在安装python-graphviz时扫描完依赖包列表后,报错如下:

winerror 127找不到指定的程序
winerror 127找不到指定的程序
winerror 127找不到指定的程序
winerror 127找不到指定的程序
winerror 127找不到指定的程序

解决如下:
当Anaconda/DLLS中libssl-1_1-x64.dll 和 anaconda3\Library\bin中的libssl-1_1-x64.dll中的日期不一致时,使用Anaconda/DLLS中libssl-1_1-x64.dll 替换掉 anaconda3\Library\bin中的libssl-1_1-x64.dll。

参考:
通过Anaconda安装Graphviz
Python中graphviz库的使用
python graphviz的使用(画图工具)
winerror 127找不到指定的程序

相关文章

网友评论

      本文标题:Win10 python 下安装Graphviz及其使用

      本文链接:https://www.haomeiwen.com/subject/dezptktx.html