[Python] 如何在Windows下安装图形可视化工具graphviz

news2024/9/27 7:18:20

什么是graphviz?

Graphviz是一款开源的图形可视化工具,用于生成各种结构化数据的图形表示。它支持多种图形排列算法,可以将复杂的数据关系用图形的方式直观地展示出来。Graphviz广泛应用于软件工程、数据可视化、计算机网络以及其他领域的可视化分析中。它的主要特点包括易用性、灵活性和高度可定制性。用户可以通过简单的文本描述来定义图形,然后使用Graphviz生成对应的图形表示,从而方便地进行数据分析和可视化工作。

About | Graphviz

下载编译版本graphiz

Download | Graphviz

https://gitlab.com/api/v4/projects/4207231/packages/generic/graphviz-releases/9.0.0/windows_10_cmake_Release_graphviz-install-9.0.0-win64.exe

安装Windows版本的graphviz

 

 

点击“安装”,等待完成即可。

检查是否安装成功

Win键+R 打开运行 输出 cmd
输入"dot --version"
出现下面的界面说明安装成功,会显示你的版本号,可以通过"where dot"检查你安装的位置。

使用jupyter-lab来验证graphviz是否可用

激活jupyter-lab对应的conda虚拟环境,通过pip命令安装python的graphviz依赖包:

pip install graphviz

如何安装conda和创建虚拟环境,可以阅读:

[Python] conda、anaconda、miniconda的关系,miniconda安装,conda命令使用_conda和anaconda mini-CSDN博客

如何安装Jupyter-Lab, 可以阅读:[Python] Jupyter Notebook(Jupyter Lab)介绍,安装,配置,启动及创建第一个notebook_python 启动jupyter lab-CSDN博客

安装完之后,启动jupyter-lab, 然后创建一个测试的Notebook,把下面的python代码复制到cell中,并运行单元格:

from graphviz import Digraph
grap_g = Digraph("G",format="jpg")
sub_g0 = Digraph(comment="process1",graph_attr={"style":'filled',"color":'lightgrey'},node_attr={"style":"filled","color":"red"})
sub_g0.node("a0","a0")
sub_g0.node("a1","a1")
sub_g0.node("a2","a2")
sub_g0.node("a3","a3")
sub_g0.edge("a0","a1")
sub_g0.edge("a1","a2")
sub_g0.edge("a2","a3")
sub_g0.edge("a3", "a0")

sub_g1 = Digraph(comment="process1",graph_attr={"style":'filled'})
sub_g1.node("B","b0")
sub_g1.node("C","b1")
sub_g1.node("D","b2")
sub_g1.node("E","b3")
sub_g1.edges(["BC","CD","DE"])

grap_g.node(
"start", label="start",shape="Mdiamond")
grap_g.node(
"end", label="end", shape="Mdiamond")

grap_g.subgraph(sub_g0)
grap_g.subgraph(sub_g1)
grap_g.edge("start","a0")
grap_g.edge("start","B")

grap_g.edge("a1","E")
grap_g.edge("D","a3")

grap_g.edge("a3","end")
grap_g.edge("E","end")

grap_g.render('test-table2.gv', view=True)

from graphviz import Digraph

g = Digraph('测试图片', format='jpg')
g.node(name='a',color='red')
g.node(name='b',color='blue')
g.edge('a','b',color='green')
g.view()

生成后,会用你的操作系统默认的图片浏览器直接打开生成的流程图:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1414755.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot之时间数据前端显示格式化

背景 在实际我们通常需要在前端显示对数据操作的时间或者最近的更新时间,如果我们只是简单的使用 LocalDateTime.now()来传入数据不进行任何处理那么我们就会得到非常难看的数据 解决方式: 1). 方式一 在属性上加上注解,对日期进行格式…

【JavaEE进阶】 #{}和${}

文章目录 🍃前言🌳#{}和${}使⽤🚩Interger类型的参数(基础数据类型)🎈使用#{}🎈使用${} 🚩String类型的参数使用🎈#{}使用🎈${} 🎍#{}和${}区别&a…

中国新能源汽车持续跑出发展“加速度”,比亚迪迎来向上突破

2023年已经过去,对于汽车圈而言,2023年是中国车市的分水岭,在这一年,中国汽车工业70年以来首次进入全球序列,自主品牌强势霸榜,销量首次超过合资车。要知道,这是自大众于1984年进入中国市场成立…

【PLC 网络通信及 MODBUS TCP通信测试】

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、PLC的通信方式有?二、PLC网络通信1.MODBUS TCP 三、安装虚拟软件2.测试2.1 测试程序2.2 对接虚拟软件 总结 前言 提示:这里可以添加…

2024年人工智能产业十大发展趋势

2024年人工智能产业十大发展趋势 技术变革1. 多模态预训练大模型将是人工智能产业的标配2. 高质量数据愈发稀缺将倒逼数据智能飞跃3. 智能算力无处不在的计算新范式加速实现 应用创新4. 人工智能生成内容(AIGC)应用向全场景渗透5. 人工智能驱动科学研究&…

第8章 异常

第8章 异常 学习目标 能够辨别程序中异常和错误 说出异常的分类 说出虚拟机处理异常的方式 列出常见的5个运行时异常 列出常见的5个编译时异常 能够使用try…catch关键字处理异常 能够使用throw抛出异常对象 能够使用throws关键字处理异常 能够自定义异常类 能够处理自定义异常…

【精选推荐】3款强大的API渗透测试工具

1免责声明 请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,作者不为此承担任何责任。工具来自网络,安全性自测。 2前言 给大家介绍三款优秀的…

单片机学习笔记---独立按键控制LED显示二进制

这节我们来实现独立按键的第三个功能,独立按键控制LED显示二进制 新创建一个工程文件,然后上来我们就要把基本框架写好,这是基本的习惯 老规矩,然后把Delay 1ms的代码复制过来 复制过来后改造一下: 把1ms删掉&#x…

类和对象 第四部分:友元

在程序里,有些私有属性,也想让类外特殊的一些函数或者类进行访问,就需要用到友元的技术 友元的目的就是让一个函数或者类,访问另一个类私有成员 友元的关键字为friend 一.友元的三种实现 (一)全局函数友元 …

【Mybatis的一二级缓存】

缓存是什么? 缓存其实就是存储在内存中的临时数据,这里的数据量会比较小,一般来说,服务器的内存也是有限的,不可能将所有的数据都放到服务器的内存里面,所以, 只会把关键数据放到缓存中&#x…

解决:‘chromedriver’ executable needs to be in PATH

解决:chromedriver’ executable needs to be in PATH 文章目录 解决:chromedriver’ executable needs to be in PATH背景报错问题报错翻译报错位置代码报错原因解决方法方法一:检查python安装路径有没有添加到环境变量里面方法二&#xff1…

C# 命名管道NamedPipeServerStream使用

NamedPipeServerStream 是 .NET Framework 和 .NET Core 中提供的一个类,用于创建和操作命名管道的服务器端。命名管道是一种在同一台计算机上或不同计算机之间进行进程间通信的机制。 命名管道允许两个或多个进程通过共享的管道进行通信。其中一个进程充当服务器&…

JavaSE基础面试题-线程池原理

线程池原理 线程池做的主要工作是控制线程运行的数量,处理过程中将任务放入队列,然后在线程创建后,启动这些任务如果线程数量超过了最大数量,超出数量的线程排队等候,等其它线程执行完成,再从队列中取出执…

Nodejs前端学习Day1_补档

我给day1搞没了,还是觉得该补一个,有用 文章目录 前言一、学习目标二、学习目录三、为什么JavaScript代码可以在浏览器中运行四、为什么JavaScript可以操作DOM和BOM五、浏览器中的JavaScript运行环境总结 前言 补档 一、学习目标 二、学习目录 三、为什…

二分算法模版

二分算法模版 实数二分算法模版实数二分模版题 整数二分算法模版向上取整二分模版向下取整二分模版二分模版的注意点二分模版中check函数的实现能够使用二分的条件 二分主要分两类, 一类是对实数进行二分,一类是对整数进行二分 对整数二分又分成2种&…

ubuntu20.04 安装ROS2 记录

主要参考B站古月居的ROS2入门21讲 和 以下链接(基本和视频上一致) ubuntu20.04安装ROS2 详细教程_ubuntu20.04 ros2-CSDN博客 但是中间有些需要注意的地方, 1,添加源 步骤中提到 sudo curl -sSL https://raw.githubuserconten…

移动Web——平面转换-旋转

1、平面转换-旋转 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><style…

【JavaEE进阶】 数据库连接池与MySQL企业开发规范

文章目录 🌴数据库连接池🎋数据库连接池的使用🎄MySQL企业开发规范⭕总结🌴数据库连接池 数据库连接池负责分配、管理和释放数据库连接,它允许应⽤程序重复使⽤⼀个现有的数据库连接,⽽不是再重新建⽴⼀个. 没有使⽤数据库连接池的情况:每次执⾏SQL语句,要先创建⼀…

【JavaSE篇】——数组的定义与使用

目录 本章的目标&#xff1a; &#x1f388;数组的基本概念 &#x1f36d;创建数组 &#x1f36d;数组的初始化 &#x1f36d;数组的使用 &#x1f449;数组中元素访问 &#x1f449;遍历数组 &#x1f388;数组是引用类型 &#x1f36d;初始JVM的内存分布 &#x1f…

HarmonyOS自定义弹出对话框CustomDialog并传递变量

HarmonyOS定义了一系列弹窗反馈类的组件​ 和前端开发框架VUE3配套生态库element plus中的提供各种组件相比&#xff0c;还是要少一些。可能是手机端操作和PC端操作的差异导致的​ 如果内置的弹窗不满足要求&#xff0c;可以基于CustomDialog自定义出各种个性化的反馈组件。 首…