0.目录

1.参考

https://www.processon.com/  应该值得一试

知乎 用什么软件画流程图?

9款国内外垂直领域的在线作图工具[可代替visio]

程序员必知的七个图形工具

说到流程图还是再次提及一下,我们之前说到的Graphviz 。

Graphviz (英文:Graph Visualization Software的缩写)是一个由AT&T实验室启动的开源工具包,用于绘制DOT语言脚本描述的图形。它也提供了供其它软件使用的库。

它的主要特点是代码生成图像,并且足够的简单。

2.Graphviz

(1)下载安装

http://graphviz.org/Download.php最下方 agree

Windows
Stable and development Windows Install packages

(2)添加环境变量

path添加: D:\Program Files (x86)\Graphviz2.38\bin

新开cmd:dot -?

(3)中文支持

在 Windows 上設定 Graphviz 中文字型

只要你用 UTF-8 的編碼來儲存描述關係圖的 dot 檔,Graphviz 也可以產生包含中文的關係圖。但 Windows 版的 Graphviz 似乎沒有設定好 fontconfig,因此會找不到中文字型,只要設定好 fontconfig 即可解決。依照預設安裝路徑,設定檔在 C:\Program Files\Graphviz 2.21\etc\fonts\fonts.conf,找到以下這行:

    <dir>#FONTDIR#</dir>
改成 Windows 字型檔的路徑: <dir>C:\WINDOWS\Fonts</dir>
Graphviz 就可以使用中文了!但注意目前似乎只能輸入英文的字型名稱,範例如下: digraph g {
node[fontname = "PMingLiu"];
"中文" -> "英文";
}

(4) 可以运行gvedit.exe写入代码,f5直接预览效果

(5) python库,其实用处不大

https://pypi.python.org/pypi/graphviz

3.参考文档

官网: http://graphviz.org/Documentation.php

使用DOT语言和Graphviz绘图(翻译)

一次性批量定义属性

    node [color=Red,fontname=Courier,shape=box] //All nodes will this shape and colour
edge [color=Blue, style=dashed] //All the lines look like this

标 题: 【合集】dot language Graphviz流程图的问题

  (连线连在角上)

  portPos headport tailport 这几个属性

画图神器--graphviz

digraph login3times{

    edge[fontname="Microsoft YaHei"]
node[shape=box, fontname="Microsoft YaHei" size="20,20"]
fontname="Microsoft YaHei"
label="三次登录流程图"

4.语法注意事项

(1)框图为node,默认形状 ellipse 椭圆形, shape = box 长方形,diamond 菱形,circle 圆形

(2)连线为edge,箭头方向 [dir=forward, back, both, or none]

(3)在有必要的时候加双引号,如:“do sth”, "func()"

(4)注释为 //, 或 /*   */

(5)不方便之处:

A -> B -> C ->D[label=to] ,则会在三条连线上都添加 to 字样

对比:

A -> B

B -> C[label=to]

C ->D

5.综合应用

//G:\pydata\pycode>dot eg.dot -Tpng -o eg.png
digraph graphname
{
//rankdir=LR
node[fontname = "simsun"]
fontname="Microsoft YaHei"
label="代理IP获取流程图" START[label="入口get_mimvp()" shape=box]
END[label=出口ip_port_type_tuple_list, shape=box]
JUDGE[label="feature_vectors == []" color=Blue, fontsize=24, shape=diamond] START -> JUDGE
{rank=same; "extract_features()", "load_mimvp()"}
JUDGE -> "extract_features()"[label=True tailport=w]// headport=n]
"extract_features()"[style=filled, fillcolor=orange]
JUDGE -> "load_mimvp()"[label=False tailport=s headport=n] "extract_features()" -> "load_mimvp()"[label=return, fontcolor=red, dir=forward] //dir=forward, back, both, or none port_src_list[style=filled, fillcolor=yellow]
port_list[style=filled, fillcolor=green] "load_mimvp()" -> {ip_list, type_list, port_src_list}
port_src_list -> port_list
{rank=same; ip_list, type_list, port_list} -> "merge_result" -> END subgraph cluster1
{
label=子图1_特征提取 "invoke extract_features()"[style=filled, fillcolor=orange]
judge[label="filepath is not None" color=Blue, shape=diamond]
feature_vectors[style=filled, fillcolor=red] "invoke extract_features()" -> judge
judge -> "load_images_from_filepath()"[label=True tailport=w]
judge -> "load_images_from_src_list()"[label=False tailport=s]
{rank=same; "load_images_from_filepath()", "load_images_from_src_list()"}
"load_images_from_filepath()" -> "split_image()"[label=img_list]
"load_images_from_src_list()" -> "split_image()"[label=img_list]
"split_image()" -> "build_vector()"[label="split_imgs"]
"build_vector()" -> feature_vectors[label="item = {input: vector}"] // -> "load_mimvp()"
} subgraph cluster2
{
label=子图2_余弦相似度比较
port_src[style=filled, fillcolor=yellow]
port[style=filled, fillcolor=green] port_src -> "get_port()" -> "load_image_from_src()" -> "invoke split_image()" -> "invoke build_vector()"
"invoke build_vector()" -> "cos_similarity()"[label="vector\nfeature_vectors", fontcolor=red]
"cos_similarity()" -> port
}
}

代码另存为eg.dot, 编码utf-8

在命令行中运行:G:\pydata\pycode>dot eg.dot -Tpng -o eg.png

流程图 Graphviz - Graph Visualization Software的更多相关文章

  1. Graphviz - Graph Visualization Software 开源可视化绘图工具(visio 类)

    http://www.graphviz.org/Download_windows.php Welcome to Graphviz Available translations:  Romanian,  ...

  2. Graph Visualization

    1. 什么是graph visualization? Graph visualization is a way of representing structural information as di ...

  3. Trendalyzer is an information visualization software

    Trendalyzer is an information visualization software for animation of statistics that was initially ...

  4. 边捆绑: Content Importance Based Edge Bundling for Graph Visualization

    Problem 当图所要表达的信息较多时, 图中可能会充满交叉的线[1-2], 甚至整个显示空间都被点.线所覆盖, 这时想通过观察来获取图中的重要信息将会变得非常困难, 这种现象称为图的视觉混乱. K ...

  5. Python - 运行流程图, call graph, 调用图

    解决方案 pycallgraph(感觉直接用pycallgraph grahviz命令生成的图并不是我想要的) 如何去阅读并学习一些优秀的开源框架的源码? - mailto1587的回答 - 知乎 h ...

  6. python之验证码识别 特征向量提取和余弦相似性比较

    0.目录 1.参考2.没事画个流程图3.完整代码4.改进方向 1.参考 https://en.wikipedia.org/wiki/Cosine_similarity https://zh.wikip ...

  7. graphviz使用

    官方网站:http://www.graphviz.org/ Graphviz (Graph Visualization Software) 是一个由AT&T实验室启动的开源工具包.DOT是一种 ...

  8. software collection

    software software Table of Contents 1. Privacy 2. GFW 2.1. google search 2.2. 修改 DNS 服务器 2.2.1. 修改ip ...

  9. linux下阅读源代码的工具

    说来真是惭愧呀.一直在用VIM 做开发.却不知道VI 里还有这么好使的工具.以前一直都是用: find -type f -print | xargs grep -i **** 在源代码里查找. 原来L ...

随机推荐

  1. jquery获取当前按钮、截取字符串、字符串拼接、动态循环添加元素

    截取字符串:字符串拼接:动态循环添加元素:获取当前按钮: {data : null, render: function(data, type, row ) { var loginName = $(&q ...

  2. Codeforces 675D Tree Construction Splay伸展树

    链接:https://codeforces.com/problemset/problem/675/D 题意: 给一个二叉搜索树,一开始为空,不断插入数字,每次插入之后,询问他的父亲节点的权值 题解: ...

  3. 031_keepalive+nginx保证nginx高可用

    一. yum -y install keepalived keepalived配置: keepalived.conf: vrrp_instance proxy { state BACKUP inter ...

  4. 浅谈深度优先和广度优先(scrapy-redis)

    首先先谈谈深度优先和广度优先的定义 深度优先搜索算法(英语:Depth-First-Search,DFS)是一种用于遍历或搜索树或图的算法.沿着树的深度遍历树的节点,尽可能深的搜索树的分支.当节点v的 ...

  5. 2)django-请求生命周期

    1)下图是django请求生命周期 2)详细例子

  6. aview安装和使用

    一.安装aalibwget https://sourceforge.net/projects/aa-project/files/latest/download?source=files --no-ch ...

  7. Eclipse中设置Java代码格式化

    一.自定义 Java 代码格式化 [Java-Code-Formatting.xml 下载],下载完毕以后,打开 Eclipse 找到如下图界面,点击 Import 导入即可.

  8. doy09 文件处理,拷贝文件

    一\在python中打开文件,得到文件语句并赋值给一个变量 f=open('a.txt','r',encoding='utf-8'))  默认打开模式就为r: 2.通过句柄对文件进行操作 data=f ...

  9. Java 创建一个窗口,使其启动时位于屏幕中间

    import java.awt.Toolkit; import javax.swing.JFrame; public class WindowInTheMiddle extends JFrame { ...

  10. Centos6.8部署jumpserver(完整版)

    环境: 系统 Centos6.8 IP:192.168.66.131 关闭selinux和防火墙 # 修改字符集,否则可能报 input/output error的问题,因为日志里打印了中文 # lo ...