图像与可视化¶
在DI-engine中,我们经常会需要进行图像的绘制,以及一些信息的度量与可视化,本节将对这些内容进行详细介绍。
PlantUML¶
PlantUML是一种可以用于绘制UML等图像的工具,详情可参考 PlantUML官方网站 。其最大的特点在于:基于代码,无需关注排版,十分易于维护。
例如,我们可以绘制类图
可以绘制算法的流程图
也可以绘制YAML数据
我们可以使用plantumlcli工具进行图像的生成,具体可参考 plantumlcli的Github仓库 。
Note
而在DI-engine的文档中,已经集成了PlantUML,可以基于源代码自动生成图像。例如,我们可以在当前路径下创建文件 plantuml-demo.puml
1@startuml
2Alice -> Bob: Authentication Request
3Bob --> Alice: Authentication Response
4
5Alice -> Bob: Another authentication Request
6Alice <-- Bob: Another authentication Response
7@enduml
当编译文档时,SVG格式的图像 plantuml-demo.puml.svg
也将会自动生成,如下所示。
graphviz¶
对于更加复杂的拓扑结构图,我们可以使用graphviz工具进行绘制:
例如,我们可以使用Graphviz,快速绘制一个图结构,如下代码所示
1digraph G {
2 start -> a [label="3"];
3 start -> d [label="2"];
4
5 a -> b [label="1"];
6 b -> c [label="2"];
7 d -> c [label="3"];
8
9 a -> end [label="5"];
10 c -> end [label="3"];
11}
绘制的图像如下所示
draw.io¶
draw.io
是一个极为简单易用的在线图像编辑工具,可以用来编辑工作流图、BPM、组织图、UML图、ER图以及网络拓朴图等:
draw.io
最大的特点在于拖动式的作图方式,因而可以实现“所见即所得”。
snakeviz¶
当我们需要对一个程序或程序的局部进行测速时,可以使用原生的cProfile,而snakeviz则可以使测速结果以可视化的形式展现出来: