• Docs >
  • Diagrams and Visualization
Shortcuts

图表和可视化

在DI-engine中,我们经常需要绘制图像并测量和可视化一些信息。本节将详细介绍这些内容。

PlantUML

PlantUML 是一个可以用来绘制UML和其他图像的工具。详情请参考 PlantUML的官方网站。它最大的特点是基于代码,不需要关注排版,并且非常易于维护。

例如,我们可以绘制类图

../_images/plantuml-class-demo.puml.svg

你可以绘制算法的流程图

../_images/plantuml-activity-en-demo.puml.svg

YAML 数据也可以被绘制

../_images/plantuml-yaml-demo.puml.svg

我们可以使用plantumlcli工具来生成图像。详情请参考plantumlcli GitHub仓库

注意

在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也会自动生成,如下所示。

../_images/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}

绘制的图像如下所示

../_images/graphviz-demo.svg

draw.io

draw.io 是一个非常简单易用的在线图像编辑工具,可以用来编辑工作流程图、BPM、组织结构图、UML图、ER图、网络拓扑图等:

../_images/draw.io-example.png

draw.io的最大特点是拖拽绘图方式,因此可以实现“所见即所得”。

snakeviz

当我们需要测量程序或程序某部分的速度时,我们可以使用原生的cProfile,而sneakviz可以以可视化的形式显示速度测量结果:

../_images/snakeviz-example.png