graphviz安装与python中的调用(Windows版本)

graphviz安装与python调用

    • 安装 Graphviz
    • 验证 graphviz 是否安装成功
      • 基本绘图入门
    • python 使用 graphviz

graphviz 包的安装问题

graphviz这个包,使用 pip install graphviz 安装后是不行的,这只安装了graphviz的pyhon调用接口,使用的话还需要下载graphviz的安装文件。

在决策树模型的部署中,使用sklearn库提供的现成方案是省事的方法,但为对其进行可视化操作,使用pydotplus-Graphviz库必不可少-如何正常使用该库给我造成了一些困扰。

目标是决策树模型的绘制,最终输出如图:

在这里插入图片描述

安装 Graphviz

Graphviz 是一个开源工具,可以运行在类似于 UNIX? 的大多数平台和 Microsoft? Windows? 之上。适用于大多数平台的二进制文件可以在 Graphviz 主页 上找到。AIX 二进制文件可以在 perzl.org上找到。

下载地址:

1
https://graphviz.gitlab.io/_pages/Download/Download_windows.html

在这里插入图片描述
由于上述网站为外网,访问下载需要较长时间,可以选择以下地址选择安装包下载

将graphviz安装目录下的bin文件夹添加到Path环境变量中
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

验证 graphviz 是否安装成功

进入windows命令行界面,输入 dot -version 然后按回车,如果显示graphviz的相关版本信息,则安装配置成功。

在这里插入图片描述

基本绘图入门

(一)、打开graphviz安装文件中,找到编辑器gvedit

在这里插入图片描述编写如下的dot脚本语言,保存成gv格式文本文件。然后进入命令行界面,使用dot命令,将gv文件转化为png图形文件。

1
dot D:\graphviz_file\graph1.gv -Tpng -o image.png

(二)、可以不用命令,直接使用IDE带的功能导出图片

点击 File -> New . 进行编码后点击红色方框可以输出图片

在这里插入图片描述

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
digraph G{

    size = "5, 5";//图片大小
    main[shape=box];/*形状*/

    main->parse;
    parse->execute;

    main->init[style = dotted];//虚线

    main->cleanup;
    edge[color = green]; // 连接线的颜色

    execute->{make_string; printf}//连接两个

    init->make_string;
    main->printf[style=bold, label="100 times"];//线的 label

    make_string[label = "make a\nstring"]// \n, 这个node的label,注意和上一行的区别

    node[shape = box, style = filled, color = ".7.3 1.0"];//一个node的属性

    execute->compare;
}

在这里插入图片描述

graphviz 包的安装问题

说明一下,graphviz这个包,使用pip install graphviz安装后是不行的,这只安装了graphviz的pyhon调用接口,使用的话还需要下载graphviz的安装文件。

python 使用 graphviz

安装好 graphviz后, 进入命令行界面: 输入以下命令,安装好与python交互所需要的库

1
2
pip install graphviz
pip install pydotplus
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
from graphviz import Digraph

# 实例化一个Digraph对象(有向图),name:生成的图片的图片名,format:生成的图片格式
dot = Digraph(name="MyPicture", comment="the test", format="png")

# 生成图片节点,name:这个节点对象的名称,label:节点名,color:画节点的线的颜色
dot.node(name='a', label='Ming', color='green')
dot.node(name='b', label='Hong', color='yellow')
dot.node(name='c', label='Dong')

# 在节点之间画线,label:线上显示的文本,color:线的颜色
dot.edge('a', 'b', label="ab\na-b", color='red')
# 一次性画多条线,c到b的线,a到c的线
dot.edges(['cb', 'ac'])

# 打印生成的源代码
print(dot.source)

# 画图,filename:图片的名称,若无filename,则使用Digraph对象的name,默认会有gv后缀
# directory:图片保存的路径,默认是在当前路径下保存
dot.view(filename="mypicture", directory="D:\MyTest")

# 跟view一样的用法(render跟view选择一个即可),一般用render生成图片,不使用view=True,view=True用在调试的时候
dot.render(filename='MyPicture', directory="D:\MyTest",view=True)

在这里插入图片描述

参考博客:
https://www.jianshu.com/p/3a37a373b8a0
https://blog.csdn.net/lizzy05/article/details/88529483