目录

前言 1.1

画图工具概述 1.2

画图工具 1.3

通用类 1.3.1

离线客户端软件 1.3.1.1

Win 1.3.1.1.1

Mac 1.3.1.1.2

Diagrams 1.3.1.1.2.1

Linux 1.3.1.1.3

在线网站 1.3.1.2

ProcessOn 1.3.1.2.1

举例 1.3.1.2.1.1

画图过程 1.3.1.2.1.2

Gliffy 1.3.1.2.2

离线+在线 1.3.1.3

draw.io 1.3.1.3.1

js库 1.3.1.4

mermaid.js 1.3.1.4.1

Markdown 1.3.1.4.1.1

flowchart.js 1.3.1.4.2

脑图 1.3.2

离线+在线 1.3.2.1

离线客户端软件 1.3.2.2

跨平台 1.3.2.2.1

Xmind 1.3.2.2.1.1

MindManager 1.3.2.2.1.2

Freemind 1.3.2.2.1.3

在线网站 1.3.2.3

百度脑图 1.3.2.3.1

地图 1.3.3

js库 1.3.3.1

leaflet.js 1.3.3.1.1

其他 1.3.4

Markdown 1.3.4.1

Latex 1.3.4.2

云系统架构 1.3.4.3

附录 1.4

参考资料 1.4.1

前言

好用的画图工具

最新版本：v1.1

更新时间：20210916

简介

总结常用的各种画图工具，搞清楚优劣，方便你找到适合自己的画图工具。包括画图中图表类和流程图、脑图等常见图的类型。分别介绍了几大类的图，包括通用类、脑图、地图等；以及分别介绍了，通用类图的客户端软件、在线网站、以及离线和在线都支持的、以及js库。包括通用类客户端软件中的Diagrams；以及在线画图网站中的processon、Gliffy；在线离线都有的draw.io；以及js库，比如mermaid.js以及其中的Markdown、flowchart.js；介绍了脑图中，离线在线都有的幕布，跨平台的客户端软件，比如Xmind、MindManager、Freemind；以及画脑图在线网站的百度脑图、Mindomo等；能画地图的js库，比如leaflet.js，以及对应Python接口的Folium；还介绍了其他格式，比如Markdown中画图、Latex中画图、专门画云系统架构图的Diagrams。

源码+浏览+下载

本书的各种源码、在线浏览地址、多种格式文件下载如下：

Gitbook源码

crifan/best_diagram_tool: 好用的画图工具

如何使用此Gitbook源码去生成发布为电子书

详见：crifan/gitbook_template: demo how to use crifan gitbook template and demo

在线浏览

好用的画图工具 book.crifan.com

好用的画图工具 crifan.github.io

离线下载阅读

好用的画图工具 PDF

好用的画图工具 ePub

好用的画图工具 Mobi

版权说明

此电子书教程的全部内容，如无特别说明，均为本人原创和整理。其中部分内容参考自网络，均已备注了出处。如有发现侵犯您版权，请通过邮箱联系我 admin 艾特 crifan.com，我会尽快删除。谢谢合作。

鸣谢

感谢我的老婆陈雪的包容理解和悉心照料，才使得我crifan有更多精力去专注技术专研和整理归纳出这些电子书和技术教程，特此鸣谢。

更多其他电子书

本人crifan还写了其他100+本电子书教程，感兴趣可移步至：

crifan/crifan_ebook_readme: Crifan的电子书的使用说明

crifan.com，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2021-09-16 13:22:12

画图工具概述

画图工具概述

对于画图工具来说：

图有多种类型

常见的=通用的

图表类

饼图

柱状图

等

图chart类

流程图=flow chart

脑图=mindmap=思维导图

其他

和地图相关的

有多种画图的工具

使用方式

本地客户端软件

Win

Mac

Diagrams

Linux

Web网站=网页端

JS库

独立JS库

特殊格式

Markdown

按图的类型分

通用图形

流程图

专门某大类

脑图

客户端软件

Xmind

在线网站

processon

地图

JS库

leaflet.js

Python库

Folium

crifan.com，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2021-09-11 21:13:32

画图工具

画图工具

crifan.com，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2021-09-11 21:03:27

通用类

通用类

此处指的是，支持通用的、常见的图，比如流程图等，的各种画图工具。

crifan.com，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2021-09-11 21:00:42

离线客户端软件

离线客户端软件

此处整理，通用类的画图工具中，有离线客户端软件的。

crifan.com，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2021-09-11 21:02:39

Win

Win

crifan.com，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2021-09-11 21:01:28

Mac

Mac

此处介绍Mac系统中的画图工具。

crifan.com，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2021-09-11 20:56:46

Diagrams

Diagrams

Diagrams

总体评价：功能基本够用，界面还算好看

主页

Diagrams: A Native Diagram Editor for Mac

https://diagrams.app/

功能

编辑

流程图

普通

业务流程

软件开发

组织架构

其他

crifan.com，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2021-09-11 20:57:30

Linux

Linux

crifan.com，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2021-09-11 20:56:40

在线网站

在线网站

此处介绍，通用类画图工具中，使用形式是在线网站的。

ProcessOn

https://www.processon.com/

Gliffy

https://www.gliffy.com

cacoo

主页

Online Diagram and Flowchart Software | Cacoo

https://cacoo.com

在线模板：种类很多

crifan.com，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2021-09-11 20:57:01

ProcessOn

ProcessOn

ProcessOn

概述：一个在线网站，可以用来画图，支持各种格式，功能强大且易用

主页

ProcessOn - 免费在线作图，思维导图，流程图，实时协作

https://www.processon.com/

特点

各种类型的图

思维导图=脑图

可切换成 思维笔记

流程图

多种图形库 = 图形库很丰富

支持团队协作

海量模板库

（由于本身是网页版，所以）跨终端=支持多平台

教程

ProcessOn - 帮助手册

https://www.processon.com/support

其他说明

使用技巧

Ctrl+拖动：可以等比例缩放

Ctrl+Enter：保存文本

导出格式丰富

要夸一句，最新 20180601 发现，processon，导出格式都开始支持，其（竞争对手的）xmind和freemind了：

-> 从这点上说，processon产品做的足够好，有足够自信，大家会愿意继续使用该产品

-> 而不怕别人导出为其他软件的格式，而不继续使用processon自己的产品

-> 有态度，有信心，有格局，赞一个。

注：只有脑图，可以导出（脑图的其他竞品的格式）xmind和freemind。其他非脑图，当然无法导出xmind和freemind。

crifan.com，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2021-09-11 20:59:43

举例

processon举例

crifan

crifan电子书概览

crifan电子书概览

https://www.processon.com/view/link/5fa6221f637689653d8b9a1c

计算机技术 20191115

计算机技术 20191115

https://www.processon.com/view/link/5e61ac91e4b0a967bb38f95b

安全

安全技术概览

安全技术概览范畴图

安全技术概览范畴图

https://www.processon.com/view/link/60d2fb470791297edd62f2e3

安全技术概览脑图 20210624

安全技术概览脑图 20210624

https://www.processon.com/view/link/60d3e0bb0e3e742d29cce910

Web安全

Web安全攻防流程和常用概念

Web安全攻防流程和常用概念

https://www.processon.com/view/link/60b9f1b3f346fb5e0b2007bc

爬虫

Spider Roadmap 20200714

Spider Roadmap 20200714

https://www.processon.com/view/link/5d12dba7e4b09b096ead6880

移动端自动化

facebook-wda架构流程图

facebook-wda架构流程图

https://www.processon.com/view/link/5eb3689e5653bb07215954bf

正则表达式

一图让你看懂和记住所有正则表达式规则

一图让你看懂和记住所有正则表达式规则

https://www.processon.com/view/link/5e3f7ca3e4b0a3daae81090f

正则表达式详解：look ahead和look behind

正则表达式详解：look ahead和look behind

https://www.processon.com/view/link/5e3a5bdbe4b06b291a60f195

房贷

央行MLF 商业银行LPR 地方政府加点 个人房贷利率 关系

央行MLF 商业银行LPR 地方政府加点 个人房贷利率 关系

https://www.processon.com/view/link/5e5fb18ae4b099155f9810ed

硬件

芯片

芯片相关名词对比 20190327

芯片相关名词对比 20190327

https://www.processon.com/view/link/5c91f1b6e4b09a16b9a9acfe

常见芯片相关公司的关系 20190326

常见芯片相关公司的关系 20190326

https://www.processon.com/view/link/5c88afbce4b0ed6b42ff12c5

通信

频谱、无线电波、移动通信、4G、5G之间关系

频谱、无线电波、移动通信、4G、5G之间关系

https://www.processon.com/view/link/606172be1e0853028ab4c4b0

RCS演化历史

RCS演化历史

https://www.processon.com/view/link/5f5ad62b07912902cf81b60a

RCS/IMS/TISPAN/NGN架构和相关组织关系图

RCS/IMS/TISPAN/NGN架构和相关组织关系图

https://www.processon.com/view/link/5f48c086f346fb2e2959bfbb

汽车

汽车销售领域客户状态变化流程结构图

汽车销售领域客户状态变化流程结构图 | ProcessOn免费在线作图,在线流程图,在线思维导图

https://www.processon.com/view/link/5a604c7ae4b0a447b9adda93

crifan.com，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2021-09-16 11:58:19

画图过程

画图过程

此处以

汽车销售领域客户状态变化流程结构图 | ProcessOn免费在线作图,在线流程图,在线思维导图

https://www.processon.com/view/link/5a604c7ae4b0a447b9adda93

为例，介绍用processon的具体画图的过程：

新建文件：

未命名文件：

然后就是，从左边拖动元素，到画布中，一点点编辑了。

期间的效果：

导航=缩略图预览：

以及可以用各种细节的功能：

调整文本颜色：

对齐方式：

填充样式：

线条颜色：

线条宽度：

线条样式：

连线类型：

线条的起始和终点的样式：

编辑对象：

布局调整：

图形对齐：

图形分布：

匹配大小：

格式刷：

右边的导航栏：

导航：

图形：

度量：

数据属性：

页面属性：

页面属性-》页面大小 自定义：

历史版本：

评论：

画完图后

下载=导出文件

导出图片：

支持多种格式：

图片

png

jpg

svg

文件

pdf

下载格式：

下载到的多种格式的文件：

群协作

分享

点击分享，会生成链接：

即可在线页面查看：

汽车销售领域客户状态变化流程结构图 | ProcessOn免费在线作图,在线流程图,在线思维导图

https://www.processon.com/view/link/5a604c7ae4b0a447b9adda93

发布

也可以根据需要去发布：

crifan.com，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2021-09-16 11:58:26

Gliffy

Gliffy

Gliffy

主页

Diagram Software & Team Collaboration Tools | Gliffy

https://www.gliffy.com

举例

评价：免费版功能有限制，完整功能要收费

crifan.com，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2021-09-11 21:02:48

离线+在线

跨平台

此处介绍通用类画图软件中，支持多种平台=跨平台的。

crifan.com，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2021-09-11 20:56:53

draw.io

draw.io

draw.io

总体评价：功能还行，但是编辑功能不太好用。总体算能凑合用。

优点

免费

够用

缺点

编辑功能不好用

编辑期间，点击元素后，很容易和其他元素误连接在一起

以及点击已有箭头去编辑连接对象，长短等期间，操作很繁琐和麻烦

总体上的编辑体验，很差，不人性化，容易误操作

所以以后少用，甚至不用这个draw.io了

如何使用

在线网站

draw.io

https://www.draw.io

注：20210909 最新已跳转到：

https://app.diagrams.net/

对应主页：

Diagram Software and Flowchart Maker

https://www.diagrams.net/

（离线）客户端（软件）

下载地址

Release 14.9.6 · jgraph/drawio-desktop

https://github.com/jgraph/drawio-desktop/releases/latest

Mac

Intel x86

https://github.com/jgraph/drawio-desktop/releases/download/v14.9.6/draw.io-x64-14.9.6.dmg

Apple M1

https://github.com/jgraph/drawio-desktop/releases/download/v14.9.6/draw.io-arm64-14.9.6.dmg

举例

用draw.io去画iOS自动化测试系统架构图

draw.io：在线网站

draw.io：在线网站

入口：https://www.draw.io

弹框问保存位置

保存文件名：GameAutomationTool_SystemArchitecture.drawio

新建画布

查看有哪些元素可用

画图过程

保存：点击Unsaved changes. Click here to save，会下载xml文件

改变了语言为 简体中文 后 刷新页面，重新加载

显示界面变中文

draw.io：Mac本地客户端

draw.io：Mac本地客户端

打开draw.io

打开本地已有文件

编辑期间

导出图片

最终的图

导出/保存的图片原始文件：xml文件

<mxfile host="Electron" modified="2020-09-24T10:00:08.714Z" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/12.4.2 Chrome/78.0.3904.130 Electron/7.1.4 Safari/537.36" etag="ckiNkqZW8nDfEjMWoV_d" version="12.4.2" type="device" pages="1"><diagram id="UrqPNygQhGn5OkpY1sZ7" name="Page-1">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</diagram></mxfile>

crifan.com，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2021-09-11 21:00:48

js库

js库

还有一类是js，也可以实现画图，画出常见的流程图等内容。

crifan.com，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2021-09-11 21:00:56

mermaid.js

mermaid.js

mermaid = mermaid.js

是什么：一个js库，用于画图，主要是画各种流程图等等

Github

mermaid-js/mermaid: Generation of diagram and flowchart from text in a similar manner as markdown

https://github.com/mermaid-js/mermaid

资料

文档

mermaid - Markdownish syntax for generating flowcharts, sequence diagrams, class diagrams, gantt charts and git graphs

https://mermaid-js.github.io/mermaid/

举例

Examples - mermaid - Markdownish syntax for generating flowcharts, sequence diagrams, class diagrams, gantt charts and git graphs.

https://mermaid-js.github.io/mermaid/#/examples?id=message-to-self-in-loop

支持不同类型的图

flowchart

https://mermaid-js.github.io/mermaid/#/flowchart

Sequence diagrams

https://mermaid-js.github.io/mermaid/#/sequenceDiagram

Class diagrams

https://mermaid-js.github.io/mermaid/#/classDiagram

State diagrams

https://mermaid-js.github.io/mermaid/#/stateDiagram

Entity Relationship Diagrams

https://mermaid-js.github.io/mermaid/#/entityRelationshipDiagram

User Journey Diagram

https://mermaid-js.github.io/mermaid/#/user-journey

Gantt diagrams

https://mermaid-js.github.io/mermaid/#/gantt

Pie chart diagrams

https://mermaid-js.github.io/mermaid/#/pie

Requirement Diagram

https://mermaid-js.github.io/mermaid/#/requirementDiagram

Other Examples

https://mermaid-js.github.io/mermaid/#/examples

在线编辑（预览、导出）

Mermaid live editor

https://mermaid-js.github.io/mermaid-live-editor/edit

特点

支持设置参数，但包括自定义主题theme

如何导出图片

png

Action -> 点击第一个按钮 下载PNG -> 下载保存了png图片

如果想要高清晰度的，则要 先点击 PNG size，选择 Width，默认：1080，再点击 下载PNG，即可。

jpg

Action -> 点击 外链PNG -> 打开新页面，保存图片，可以保存出jpg格式的

效果举例

%%{init: {'theme': 'base', 'actorLineColor':'#BB8FCE'}}%%

graph TB
    subgraph 过滤无效Url
        Start((开始)) --> IsBlackList{是否是黑名单 ?}
        IsBlackList --是--> DropUrl(丢弃Url)
        IsBlackList --否--> IsIp{是否是IP ?}
        IsIp --是--> DropUrl
        IsIp --否--> IsDuplicated{是否重复Url ?}
        IsDuplicated --是--> DropUrl
        IsDuplicated --否--> ExtractRule(自动规则提取)
    end
    subgraph 自动规则提取
        ExtractRule --> IsPayUrl{是否是支付 ?}
        IsPayUrl --是--> SaveRule(保存规则)
        IsPayUrl --否--> IsPackage{是否带包名 ?}
        IsPackage --是--> SaveRule
        IsPackage --否--> RulePostProcess(规则后处理)

        SaveRule --> RulePostProcess

        subgraph 规则后处理
            RulePostProcess --> FilterInvalidValue(过滤Default和0等无效的值)
            FilterInvalidValue --> AddEventCode(添加EventCode参数)
            AddEventCode --> AssistManualCheck(辅助人工判断)
        end

    end

    subgraph 辅助人工判断
        AssistManualCheck --> KeepHttpsOnlyHost(Https只保留Host域名)
        KeepHttpsOnlyHost --> CalcFld(计算根域名fld)
        CalcFld --> FindCompany(查找公司名)
        FindCompany --> GenZhcnFisrtLetter(计算中文拼音首字母)
        GenZhcnFisrtLetter --> GenFinalRule(生成最终规则)
    end

    subgraph 生成最终规则
        GenFinalRule --> CalcThemePlay(计算游戏主题和游戏玩法)
        CalcThemePlay --> CalcUrlRuleType(计算规则类型)
        CalcUrlRuleType --> GenUrlSource(生成url来源)
        GenUrlSource --> OutputFileCsvExcel(输出csv和excel文件)

        OutputFileCsvExcel --> End
        DropUrl --> End((结束))
    end

style Start fill:#58D68D,stroke-width:2px
    style DropUrl fill:#FF5733,stroke-width:1px

    style End fill:#85929E,stroke-width:2px
    style ExtractRule fill:#5DADE2,stroke-width:2px
    style RulePostProcess fill:#5DADE2,stroke-width:2px
    style AssistManualCheck fill:#5DADE2,stroke-width:2px
    style GenFinalRule fill:#5DADE2,stroke-width:2px

效果：

在线预览

导出图片

crifan.com，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2021-09-16 13:21:33

Markdown

Markdown

TODO：

考虑把这部分Markdown内容，整理到：

其他中的Markdown

支持Markdown格式的客户端中，如果内部支持mermaid.js，则也可以用来画流程图、时序图、甘特图等等图表。

常见支持Markdown的：

离线客户端软件

印象笔记

有道云笔记

在线Markdown的mermaid网站

mermaid.js的Online Editor

https://mermaid-js.github.io/mermaid-live-editor/edit/

对比

印象笔记 vs mermaid.js Online Editor

mermaid.js的代码：

```mermaid
%%{init: {'theme': 'base', 'actorLineColor':'#BB8FCE'}}%%
graph TB
    subgraph 过滤无效Url
        Start((开始)) --> IsBlackList{是否是黑名单 ?}
        IsBlackList --是--> DropUrl(丢弃Url)
        IsBlackList --否--> IsIp{是否是IP ?}
        IsIp --是--> DropUrl
        IsIp --否--> IsDuplicated{是否重复Url ?}
        IsDuplicated --是--> DropUrl
        IsDuplicated --否--> ExtractRule(自动规则提取)
    end
    subgraph 自动规则提取
        ExtractRule --> IsPayUrl{是否是支付 ?}
        IsPayUrl --是--> SaveRule(保存规则)
        IsPayUrl --否--> IsPackage{是否带包名 ?}
        IsPackage --是--> SaveRule
        IsPackage --否--> RulePostProcess(规则后处理)

        SaveRule --> RulePostProcess

        subgraph 规则后处理
            RulePostProcess --> FilterInvalidValue(过滤Default和0等无效的值)
            FilterInvalidValue --> AddEventCode(添加EventCode参数)
            AddEventCode --> AssistManualCheck(辅助人工判断)
        end
    end

    subgraph 辅助人工判断
        AssistManualCheck --> KeepHttpsOnlyHost(Https只保留Host域名)
        KeepHttpsOnlyHost --> CalcFld(计算根域名fld)
        CalcFld --> FindCompany(查找公司名)
        FindCompany --> GenZhcnFisrtLetter(计算中文拼音首字母)
        GenZhcnFisrtLetter --> GenFinalRule(生成最终规则)
    end

    subgraph 生成最终规则
        GenFinalRule --> CalcThemePlay(计算游戏主题和游戏玩法)
        CalcThemePlay --> CalcUrlRuleType(计算规则类型)
        CalcUrlRuleType --> GenUrlSource(生成url来源)
        GenUrlSource --> OutputFileCsvExcel(输出csv和excel文件)
        OutputFileCsvExcel --> End
        DropUrl --> End((结束))
    end
style Start fill:#58D68D,stroke-width:2px
    style DropUrl fill:#FF5733,stroke-width:1px

    style End fill:#85929E,stroke-width:2px
    style ExtractRule fill:#5DADE2,stroke-width:2px
    style RulePostProcess fill:#5DADE2,stroke-width:2px
    style AssistManualCheck fill:#5DADE2,stroke-width:2px
    style GenFinalRule fill:#5DADE2,stroke-width:2px
```

效果：

印象笔记

编辑和预览

导图单张图片

mermaid.js Online Editor

印象笔记 vs VSCode vs 有道云笔记

此处，对于同一个mermaid的流程图：

关于游戏抓包自动化的流程

代码：

```mermaid
graph TB
    subgraph 准备工作
        Start((开始)) --> CheckDownloaded{已下载apk ?}
        CheckDownloaded --已下载--> CheckInstalled(已安装Apk ?)
        CheckDownloaded --未下载--> DownloadApk(下载apk)
        DownloadApk(下载apk) --> CheckInstalled
        CheckInstalled --未安装--> InstallApk(安装Apk)
    end

    subgraph 自动抓包
        subgraph 启动游戏
            CheckInstalled --已安装--> LaunchApk
            InstallApk --> LaunchApk
            LaunchApk(启动Apk) --游戏启动页--> HasRegistered{用户已注册 ?}
            subgraph 用户注册
                HasRegistered --已注册--> UserLogin
                HasRegistered --未注册--> AutoRegisterOk{自动注册成功 ?}

                AutoRegisterOk --成功--> UserLogin
                AutoRegisterOk --未成功--> ManualRegister>用户手动注册]
                ManualRegister --> UserLogin
            end
            UserLogin(用户登录) --> CreateRole
            CreateRole(创建角色) --> EnterGame(进入游戏)
        end

        subgraph 抓包付费链接
            EnterGame(进入游戏) --> GameHome(游戏主页面)
            GameHome --点击充值相关按钮--> GamePay(游戏支付页面)
            GamePay --> End((结束))
        end
    end
    style Start fill:#f66,stroke-width:2px
    style End fill:#f66,stroke-width:2px
    style DownloadApk fill:#ccf,stroke-width:2px
    style InstallApk fill:#ccf,stroke-width:2px
    style LaunchApk fill:#ccf,stroke-width:2px
    style UserLogin fill:#ccf,stroke-width:2px
    style CreateRole fill:#ccf,stroke-width:2px
    style EnterGame fill:#ccf,stroke-width:2px
    style GameHome fill:#ccf,stroke-width:2px
    style GamePay fill:#ccf,stroke-width:2px
```

效果：

印象笔记

预览

导出的图

通过印象笔记-》导出pdf-》mac预览导出图片-》Sngit编辑图片 ->最终导出的单张图片

评价：总体效果还是不错的。如果印象笔记支持subgraph的title显示，就更完美了

注：不支持即无法显示subgraph的title

VSCode

预览

有道笔记本

Web网页版

预览

注：要去掉顶部的mermaid，以及去掉多余空行，才可正常显示图

特殊

如果（subgraph的内部）有多余空行（或者多余空格），会导致无法显示预览效果

与之对比：其他工具，比如印象笔记，VSCode，都可以正常预览Markdown

LR从左到右显示

如果有时候觉得，流程图的TB=Top To Bottom=从顶向下显示，太长了，不方便查看，可以考虑切换方向，比如从左到右=LR=from Left to Right

即把代码中的：

graph TB改为 graph LR

即可实现，从左到右显示：

graph LR的效果

印象笔记中的Markdown中的Mermaid

流程图graph

模块

代码：

```mermaid
graph TD
A[模块A] -->|A1| B(模块B)
B --> C{判断条件C}
C -->|条件C1| D[模块D]
C -->|条件C2| E[模块E]
C -->|条件C3| F[模块F]
```

效果：

iOS返回前一页

代码：

```mermaid
graph TB
    subgraph 准备工作
        Start((启动iOS设备)) --> WdaInitDevice(wda初始化设备)
        WdaInitDevice --> GetPageXmlSource(获取页面xml源码)
        GetPageXmlSource --> IsTypicalBackButton{是典型返回按钮 ?}
        IsTypicalBackButton --是--> ClickBackButton(点击返回按钮)
        IsTypicalBackButton --否--> NonTypicalButtonDetect(非典型返回按钮检测)
        FixPositionDetect --左上角固定位置--> ClickBackButton
        ClickBackButton(点击返回按钮) --> End((结束测试))
    end

    subgraph NonTypicalButtonDetect
        NonTypicalButtonDetect --> IsNameLabelContainBack{name和label包含返回 ?}
        IsNameLabelContainBack --是--> ClickBackButton
        IsNameLabelContainBack --否--> IsFullScreenBack{是否是全屏返回类按钮 ?}
        IsFullScreenBack --是--> ClickBackButton
        IsFullScreenBack --否--> IsMiniprogramOther{是否是小程序类Other类按钮 ?}
        IsMiniprogramOther --是--> ClickBackButton
        IsMiniprogramOther --否--> FixPositionDetect(兜底通用逻辑)
    end
    style Start fill:#FEF9E7,stroke-width:2px
    style End fill:#FEF9E7,stroke-width:2px
    style ClickBackButton fill:#52BE80,stroke-width:2px
```

效果：

不够好看，只算凑合够用

客户流转

代码：

```mermaid
graph TB
    subgraph 线索
    Clue(线索) --建卡/建档--> ProspectCustomer(有望客户)
    end

    subgraph 潜客
    ProspectCustomer(有望客户) --下单 订单--> OrderCustomer(订单客户)
    OrderCustomer(订单客户) --交车 交车单--> DeliveryCustomer(交车客户)
    ProspectCustomer(有望客户) --> FailedCustomer(战败客户)
    FailedCustomer(战败客户) --顾问上报 经理审批--> ProspectCustomer(有望客户)
    OrderCustomer(订单客户) -- 退订 退订单--> ProspectCustomer(有望客户)
    end
```

效果：

游戏抓包

简单的：

代码：

```mermaid
graph TB
    subgraph 准备工作
    DownloadApk(下载apk) --> InstallApk(安装Apk)
    end
    subgraph 自动抓包
    InstallApk(安装Apk) --> LaunchApk(启动apk)
    LaunchApk(启动apk) --> GameHome(游戏主页面)
    GameHome(游戏主页面) --> GamePay(游戏支付页面)
    end
```

效果：

复杂的：带subgraph的

代码：

```mermaid
graph TB
    subgraph 准备工作
        Start[开始] --> CheckDownloaded{已下载apk ?}
        CheckDownloaded --已下载--> CheckInstalled(已安装Apk ?)
        CheckDownloaded --未下载--> DownloadApk(下载apk)
        DownloadApk(下载apk) --> CheckInstalled
        CheckInstalled --未安装--> InstallApk(安装Apk)
    end

    subgraph 自动抓包
        subgraph 启动游戏
            CheckInstalled --已安装--> LaunchApk(启动Apk)
            InstallApk --> LaunchApk
            LaunchApk --> LaunchPage(游戏启动页)
            LaunchPage(游戏启动页) --> UserRegister(用户注册)
            UserRegister(用户注册) --> UserLogin(用户登录)
            UserLogin(用户登录) --> CreateRole(创建角色)
            CreateRole(创建角色) --> EnterGame(进入游戏)
        end

        subgraph 抓包付费链接
            EnterGame(进入游戏) --> GameHome(游戏主页面)
            GameHome(游戏主页面) --> GamePay(游戏支付页面)
        end
    end
```

效果：

商品货物

```mermaid
graph TD
A[建立货品档案] --> B1[常规货品入库]
B1 --> C1(入库审核)
C1 --> D1[库存管理]
D1 --> E1[常规货品出库]
D1 --> E2[劳保用品出库]
D1 --> E3[调拨]
D1 --> E4[盘点]
E1 --> F1(出库审核)
E2 --> F2(出库审核)
E3 --> F3(调拨审核)
E4 --> F4(盘点审核)
F1 --> G1[打印出库单]
F1 --> H1[常规货品出库]
F2 --> G2[打印出库单]
F2 --> H2[劳保用品出库]
H1 --> I1[库存统计分析]
H2 --> I1
F3 --> G3[调拨出库]
F4 --> G4[盘点入库]
G4 --> H4[盘点分析]

A --> B2[快消品入库]
B2 --> C2(入库审核)
C2 --> D2[快消品出库]
D2 --> E5(出库审核)
E5 --> F5[出库]
F5 --> G5[快消品明显台账]
```

时序图

代码：

```mermaid
sequenceDiagram
A->>B: 是否已收到消息？
B-->>A: 已收到消息
```

效果：

甘特图

代码：

```mermaid
gantt
title 甘特图
dateFormat YYYY-MM-DD
section 项目A
任务1 :a1, 2018-06-06, 30d
任务2 :after a1 , 20d
section 项目B
任务3 :2018-06-12 , 12d
任务4 : 24d
```

效果：

crifan.com，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2021-09-11 21:03:14

flowchart.js

flowchart.js

flowchart.js

概述：一个js库，可以用来画流程图

主页

flowchart.js

http://flowchart.js.org

GitHub

adrai/flowchart.js: Draws simple SVG flow chart diagrams from textual representation of the diagram

https://github.com/adrai/flowchart.js

举例

代码

  st=>start: Start:>http://www.google.com[blank]
  e=>end:>http://www.google.com
  op1=>operation: My Operation
  sub1=>subroutine: My Subroutine
  cond=>condition: Yes
  or No?:>http://www.google.com
  io=>inputoutput: catch something...
  para=>parallel: parallel tasks

  st->op1->cond
  cond(yes)->io->e
  cond(no)->para
  para(path1, bottom)->sub1(right)->op1
  para(path2, top)->op1

效果

crifan.com，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2021-09-11 21:02:38

脑图

脑图mindmap

脑图=mindmap=mind map

别称：思维导图

是什么：常见图形的一种，常用于总结某类内容

往往是公司多人开会头脑风暴讨论某个东西后，用脑图呈现出来，成系统的一套东西

长什么样：从中间某个主题，散发出去，呈现多个分支状

Xmind

processon

常见脑图工具

客户端软件

跨平台

Xmind：很好用

MindJet的MindManager

Freemind：虽然免费，但是真心不好用

iMindMap：3D，炫酷，好看

MindMaster

Omnigraffle：古老的感觉

Mac

MindNote

Scapple

MindNode：Mac端，简洁好用

主页

Mind Map & Brainstorm Ideas - MindNode

https://www.mindnode.com/

在线网站

推荐：processon

主页：https://www.processon.com/

百度脑图：很一般

对比

XMind、MindManager、iMindMap

MindManager是Win平台最强大的，Xmind次之，iMindMap次次之；

MindManager非常强大但是主要维护Windows版！

XMind是macOS平台最好用的，iMindMap次之，MindManager在十万八千里之外；

XMind是macOS和Win同步更新 在macOS下是最棒的，在Win下稳定性受人诟病

Freemind vs Xmind vs MindJet MindManager

Xmind vs MindManager vs iMindMap

XMind vs Scapple vs MindNote

其他评价

最强大思维导图工具三剑客除了MindManager和XMind，第三个就是iMindMap只是漂亮，其他方面次于xmind或者mindmanager，因为作图漂亮如果做展示用和存档的话这个还是不错的。

iThoughtx和MindNode是macOS与iOS平台轻量级里面最好的思维导图工具，（我个人更喜欢MindNode）

不过这两个工具较话题讨论的两个工具是超级轻量化的，尤其MindNode简单至极，但是大道至简，简单正好带来了零门槛入门，并且可以心无旁念专注于思考。

推荐刚入门就从MindNode学起，等完全掌握了思维导图的精髓后再按照上文选择自己的工具

结论

macOS：Xmind完胜

Win：MindManager完胜

macOS＋Win双平台通用：XMind完胜

crifan.com，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2021-09-11 21:01:43

离线+在线

跨平台

此处介绍脑图软件中，跨平台，即支持在线网页，也支持离线客户端的。

幕布

幕布

幕布

主页

https://mubu.com/home

截图

crifan.com，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2021-09-11 20:59:48

离线客户端软件

离线客户端软件

此处介绍脑图的离线客户端软件。

crifan.com，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2021-09-11 20:59:04

跨平台

跨平台

此处介绍，能画脑图的，离线客户端软件中的支持多个平台、即跨平台的软件。

crifan.com，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2021-09-11 21:03:41

Xmind

Xmind

Xmind

概述：主流的跨平台的脑图软件

支持平台

桌面端

Win

Mac

Linux

移动端

主页

https://www.xmind.cn/

下载

https://www.xmind.cn/download/

crifan.com，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2021-09-11 21:03:52

MindManager

MindManager

MindManager

所属公司：MindJet

主页

MindManager - Mind Mapping Software

https://www.mindmanager.com/en/product/mindmanager/

crifan.com，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2021-09-11 20:58:52

Freemind

Freemind

Freemind

概述：开源免费脑图软件

主页

Main Page - FreeMind

http://freemind.sourceforge.net/wiki/index.php/Main_Page

下载

Download - FreeMind

http://freemind.sourceforge.net/wiki/index.php/Download

截图

Screenshots - FreeMind

http://freemind.sourceforge.net/wiki/index.php/Screenshots

举例

crifan.com，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2021-09-11 21:00:22

在线网站

在线网站

此处整理，用在线网站形式去画脑图的。

百度脑图

Mindomo

主页

https://www.mindomo.com/zh/

举例

Mindomo 免费的在线思维导图 - Mind Map

https://www.mindomo.com/zh/mindmap/mindomo-1e373816df0e17cbaafdc4288db2a764

crifan.com，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2021-09-11 21:04:46

百度脑图

百度脑图

此处介绍，在线网站形式去画脑图的工具：百度脑图

百度脑图

首页

百度脑图 - 便捷的思维工具

http://naotu.baidu.com

举例

iOS自动化测试工具

登录到百度账号后，进入：

https://naotu.baidu.com/home

默认是列表页：

点击对应的脑图，进入编辑页面：

即可去编辑：插入新节点。编辑节点。

如何分享

想要分享的话：

要回到列表页：

点击某个脑图右边的 三个点 -> 分享设置：

在弹框 分享脑图 中，点击 打开链接 = 启动分享 = 别人才能查看

会看到提示：启用链接成功

然后去复制出（分享）链接：

http://naotu.baidu.com/file/943d57aaf43792a0a028d2607a2a8a61?token=276f21d452dea5d2

不过，尴尬的是 -》别人要登录 百度账号后，才能查看：

-》非常不方便。放弃使用。

crifan.com，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2021-09-11 21:03:42

地图

地图

基于地图（全球的、某个国家的、某个地区的等）去画图，生成地图相关图表

crifan.com，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2021-09-11 20:57:25

js库

js库

crifan.com，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2021-09-11 21:00:39

leaflet.js

leaflet.js

leaflet.js

是什么：js库

概述：一款能实现交互式地图功能的主流的js库

资料

主页

Leaflet - a JavaScript library for interactive maps

https://leafletjs.com/

教程

Tutorials - Leaflet - a JavaScript library for interactive maps

https://leafletjs.com/examples.html

API文档

Documentation - Leaflet - a JavaScript library for interactive maps

https://leafletjs.com/reference-1.7.1.html

示例代码

var map = L.map('map').setView([51.505, -0.09], 13);

L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
    attribution: '&copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'
}).addTo(map);

L.marker([51.5, -0.09]).addTo(map)
    .bindPopup('A pretty CSS3 popup.<br> Easily customizable.')
    .openPopup();

Python版leaflet

Python版leaflet = leaflet的Python的接口

Folium

概述：一个基于leaflet.js的Python地图库

GitHub

python-visualization/folium: Python Data. Leaflet.js Maps.

https://github.com/python-visualization/folium

文档

Folium — Folium 0.12.1 documentation

https://python-visualization.github.io/folium/

快速上手

Quickstart — Folium 0.12.1 documentation

https://python-visualization.github.io/folium/quickstart.html

示例

Jupyter Notebook Viewer

https://nbviewer.jupyter.org/github/python-visualization/folium/tree/master/examples/

彩色地图

https://nbviewer.jupyter.org/github/python-visualization/folium/blob/master/examples/Colormaps.ipynb

crifan.com，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2021-09-11 20:57:15

其他

其他

此处介绍，关于画图工具中，其他一些相关内容：

语法格式

Markdown

LaTex

其中内嵌支持画图，画各种类型的图表。

crifan.com，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2021-09-11 21:00:49

Markdown

Markdown

此处Markdown类型的文件格式中，如果客户端或网页支持内部的库，也可以用Markdown去画图，画出各种类型的图表。

常见支持Markdown的：

离线客户端软件

印象笔记

有道云笔记

在线Markdown的网站

TODO

印象笔记中的Markdown

普通图表

支持饼状图、折线图、柱状图和条形图。

举例：

```chart
,预算,收入,花费,债务
June,5000,8000,4000,6000
July,3000,1000,4000,3000
Aug,5000,7000,6000,3000
Sep,7000,2000,3000,1000
Oct,6000,5000,4000,2000
Nov,4000,3000,5000,

type: pie
title: 每月收益
x.title: Amount
y.title: Month
y.suffix: $
```

效果：

另外：只需将type改为对应的pie、line、column和bar，即可显示不同类型图表。

脑图

印象笔记中的Markdown中，也可以画图。

举例：

gameUrlToRule的脑图

crifan.com，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2021-09-11 20:59:50

Latex

Latex

也可以用Latex画流程图。

crifan.com，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2021-09-11 21:01:12

云系统架构

云系统架构

此处整理，专门画云系统架构图的工具。

画云架构图

用python代码画：Diagrams

Diagrams

Diagrams

Github

mingrammer/diagrams: Diagram as Code for prototyping cloud system architectures

https://github.com/mingrammer/diagrams

示例

官网

Examples · Diagrams

https://diagrams.mingrammer.com/docs/getting-started/examples

具体例子

Grouped Workers on AWS

代码：

from diagrams import Diagram
from diagrams.aws.compute import EC2
from diagrams.aws.database import RDS
from diagrams.aws.network import ELB

with Diagram("Grouped Workers", show=False, direction="TB"):
    ELB("lb") >> [EC2("worker1"),
                EC2("worker2"),
                EC2("worker3"),
                EC2("worker4"),
                EC2("worker5")] >> RDS("events")

效果

Clustered Web Services

代码：

from diagrams import Cluster, Diagram
from diagrams.aws.compute import ECS
from diagrams.aws.database import ElastiCache, RDS
from diagrams.aws.network import ELB
from diagrams.aws.network import Route53

with Diagram("Clustered Web Services", show=False):
    dns = Route53("dns")
    lb = ELB("lb")

    with Cluster("Services"):
        svc_group = [ECS("web1"),
                    ECS("web2"),
                    ECS("web3")]

    with Cluster("DB Cluster"):
        db_master = RDS("userdb")
        db_master - [RDS("userdb ro")]

    memcached = ElastiCache("memcached")

    dns >> lb >> svc_group
    svc_group >> db_master
    svc_group >> memcached

效果

Event Processing on AWS

代码：

from diagrams import Cluster, Diagram
from diagrams.aws.compute import ECS, EKS, Lambda
from diagrams.aws.database import Redshift
from diagrams.aws.integration import SQS
from diagrams.aws.storage import S3

with Diagram("Event Processing", show=False):
    source = EKS("k8s source")

    with Cluster("Event Flows"):
        with Cluster("Event Workers"):
            workers = [ECS("worker1"),
                    ECS("worker2"),
                    ECS("worker3")]

        queue = SQS("event queue")

        with Cluster("Processing"):
            handlers = [Lambda("proc1"),
                        Lambda("proc2"),
                        Lambda("proc3")]

    store = S3("events store")
    dw = Redshift("analytics")

    source >> workers >> queue >> handlers
    handlers >> store
    handlers >> dw

效果

Advanced Web Service with On-Premise

代码：

from diagrams import Cluster, Diagram
from diagrams.onprem.analytics import Spark
from diagrams.onprem.compute import Server
from diagrams.onprem.database import PostgreSQL
from diagrams.onprem.inmemory import Redis
from diagrams.onprem.logging import Fluentd
from diagrams.onprem.monitoring import Grafana, Prometheus
from diagrams.onprem.network import Nginx
from diagrams.onprem.queue import Kafka

with Diagram("Advanced Web Service with On-Premise", show=False):
    ingress = Nginx("ingress")

    metrics = Prometheus("metric")
    metrics << Grafana("monitoring")

    with Cluster("Service Cluster"):
        grpcsvc = [
            Server("grpc1"),
            Server("grpc2"),
            Server("grpc3")]

    with Cluster("Sessions HA"):
        master = Redis("session")
        master - Redis("replica") << metrics
        grpcsvc >> master

    with Cluster("Database HA"):
        master = PostgreSQL("users")
        master - PostgreSQL("slave") << metrics
        grpcsvc >> master

    aggregator = Fluentd("logging")
    aggregator >> Kafka("stream") >> Spark("analytics")

    ingress >> grpcsvc >> aggregator

效果

crifan.com，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2021-09-11 21:04:58

附录

附录

下面列出相关参考资料。

crifan.com，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2021-09-11 21:05:31

参考资料

参考资料

【记录】用draw.io去画iOS自动化测试系统架构图

【已解决】Mac中找个合适工具去画项目架构图和流程图

【记录】用draw.io去画游戏自动化测试系统架构图

【已解决】Mac中用印象笔记Markdown画项目流程图

【已解决】Mac中用印象笔记的Markdown画iOS返回前一页的流程图

【部分解决】对于Markdown的mermaid的流程图表预览显示效果比较好的工具

【未解决】优化Markdown的mermaid使得能方便导出整个流程图成为单张图片

【无法解决】印象笔记的Markdown中mermaid流程图的subgraph加上标题和设置边框属性

【记录】试用Xmind Cloud能否在线免费共享

【已解决】写好markdown的mermaid后用在线网页工具查看和导出流程图的图片

【记录】mermaid在线预览查看设置不同主题theme看看效果

【记录】用印象笔记给gameUrlToRule画流程图 20210715

【已解决】从印象笔记的markdown流程图的笔记中导出流程图图片

【记录】用印象笔记画gameUrlToRule的需求图的脑图

【记录】用processon画汽车销售领域客户状态变化流程图

【记录】用Markdown画流程图 – 在路上

【记录】ProcessOn中的图的导出和导入

【整理】前端 脑图 MindMap 可视化 – 在路上

【已解决】Mac中画系统架构图带各种软件硬件图标的画图软件

【整理】ProcessOn中的原型图的内置图标和元素

【记录】升级ProcessOn为个人版

【基本解决】用JS的库实现在线思维导图

这可能是 Python 里最强的地图绘制神器 - 知乎 (zhihu.com)

Python地图可视化之Folium – 标点符

Leaflet - a JavaScript library for interactive maps

python-visualization/folium: Python Data. Leaflet.js Maps.

Folium — Folium 0.12.1 documentation

Jupyter Notebook Viewer

Quickstart — Folium 0.12.1 documentation

Diagram Software & Team Collaboration Tools | Gliffy

Online Diagram Software & Visual Solution | Lucidchart

Pricing and Account Types | Lucidchart

流程图软件draw.io值得你拥有 - 简书

科研大佬用什么工具画流程图？看完这篇就知道了。 - 知乎

9款国内外垂直领域的在线作图工具：那些可以替代Visio的应用！ - 知乎

印象笔记 Markdown 入门指南

印象笔记新功能:Markdown 详细讲解 - 聪聪 Blog

Markdown笔记：如何画流程图_MR CUI的专栏-CSDN博客

Mermaid - How to connect subgraphs in markdown? - Stack Overflow

如何在Markdown中画流程图 - 简书

Examples - mermaid - Markdownish syntax for generating flowcharts, sequence diagrams, class diagrams, gantt charts and git graphs

Flowchart - mermaid - Markdownish syntax for generating flowcharts, sequence diagrams, class diagrams, gantt charts and git graphs

Markdown笔记：如何画流程图_MR CUI的专栏-CSDN博客_markdown画流程图

Flowchart - mermaid - Markdownish syntax for generating flowcharts, sequence diagrams, class diagrams, gantt charts and git graphs

MaHua 在线markdown编辑器

Markdown在线编辑、实时预览 - markdown在线编辑器 - 1024Tools

Chrome中实时预览Markdown | iTimothy

Editor.md - 开源在线 Markdown 编辑器

谁是2020年最强Python库？年度Top10出炉 - 知乎

大家写文档用什么神器 - V2EX

思维导图软件 XMind 和 MindManager 哪个更好？ - 知乎

XMind vs Scapple vs MindNode - Slant

MindNode vs XMind. The Best Mind Mapping software

幕布 - 极简大纲笔记 | 一键生成思维导图

iMindMap手绘思维导图软件_iMindMap 10中文版免费下载

使用 LaTeX 绘制流程图_Marionce的博客-CSDN博客_latex流程图

crifan.com，使用署名4.0国际(CC BY 4.0)协议发布 all right reserved，powered by Gitbook最后更新： 2021-09-11 20:57:30