敲代码前先构思一下-Graphviz-01
2018-03-13 本文已影响0人
Data_Python_VBA
系统:Windows 7
语言版本:Anaconda3-4.3.0.1-Windows-x86_64
编辑器:pycharm-community-2016.3.2
- 在写代码前,我相信大家都会先思考一下架构,然后可能是边写边想
- 这样的缺陷是:某些问题太复杂,想点写点,后期返工或者推倒重来可能性很大
- 对于个人完成的小项目,个人建议先把逻辑画出来,一个逻辑流程图
- 相信流程图,常规想到就是微软的VISIO,今天我们介绍个不一样的,Graphviz
Part 1:VISIO对比Graphviz
- VISIO基本是手工画,理论上你连蒙娜丽莎都可以画出来,非常耗时,尤其中间有改动,整个图可能都要改动
- 因为我们目标更多的是逻辑性,其实对美观要求没那么高,但是要很方便,迭代快,要不等你画好图,
- Graphviz其实是对
dot
语言的渲染,dot
语言非常易学,如果要修改图,修改一下代码就可以,重新生成图片就ok
综述:Graphviz非常高效,所想即所得
使用graphviz画图示例1(官网)
使用graphviz画图示例2(官网)
使用graphviz画图示例2-dot代码(官网)
graph G {
e
subgraph clusterA {
a -- b;
subgraph clusterC {
C -- D;
}
}
subgraph clusterB {
d -- f
}
d -- D
e -- clusterB
clusterC -- clusterB
}
代码截图
Part 2:dot语法
-
dot
有三大对象:图,点,线 - 对应以上代码,我们来解读一下
- 首先是以大括号来表示
{}
一个封闭的关系 - 第1行:首先定义了一个为G的图(graph)
- 第2行:节点e(可以先定义,也可以不定义直接使用)
- 第3行:子图(subgraph),名称为clusterA,子图中所有对象会用一个框进行封闭
- 第4行:节点a,节点b,并且两者相连接(a -- b)
- 第5行:子图(subgraph),名称为clusterC,相当于子图中的子图
- 第14行:子图指向子图(clusterC -- clusterB)
以上为本次的学习内容,下回见
本文为原创作品,如若转载请标明出处,如发现有错误,欢迎留言指出
常按图片识别二维码,关注本公众号
Python 优雅 帅气