简介

Graphviz是一种思维导图格式,其文件后缀是.dot。VS code中既有专门针对.dot的插件,也有嵌入Markdown的Graphviz插件,从我个人的使用频次来说,后者更加常用,有了Graphviz Markdown Preview,就可以在VS Code中绘制思维导图了。

在插件栏中下载安装之后,即可在markdown文件中使用,如图所示

在这里插入图片描述

结合示例可知,在Markdown中通过代码片来定义一个思维导图,并且指明代码片的类型为graphviz。在代码片内部,最外层说明图的类型和名称,graph表示无向图,FF可以为任意名字。

花括号内,进入具体的图形设置。rankdir为思维导图方向,LR表示从左到右;TD表示从上到下。size表示生成导图的尺寸。

Graphviz由节点组成,节点之间用线连接,节点属性则在方括号内部声明。如果节点名字不包含空格,节点内容会默认为节点名字,若想进一步设置,可指明节点中的label属性。如果一个节点同时连接多个节点,则多个节点用花括号聚集。

在所有节点之前的node节点,并没有体现在图像中,其存在的意义是规范整个导图的默认属性。

其源码如下

graph FF{
    rankdir=LR;
    size=4
    node[shape=record style=filled]
    vscode--{IDE 编程效率 外观}
    IDE--Julia
    编程效率--{Codeium Codelf}
    外观--{主题 background Power_Mode[label="Power Mode"]}
    主题--{颜色主题 图标主题}
    title[shape=egg label="VS Code插件" style=wedged]
}

常见属性

在上述代码中,主要涉及到shape、style等属性,其中shape即节点形状,更多可选形状可参考graphviz shapes

其他常用的属性如下表所示,

节点属性默认值说明/可选值
label节点名节点内容
colorblack边框颜色
fontcolorblack字体颜色
fillcolor填充色
fontsize14字体尺寸
shape椭圆record, box, ellipse, circle, diamond
plaintext, point, triangle, invtriangle…
styleboldbold, dashed, dotted, filled
image背景图片地址

graphviz支持设置全局属性,在所有节点之前,声明一个node节点,那么这个节点中设置的参数就是默认节点参数。此外,其他常用的全局属性如下

图属性备注
bgcolor背景色
fontcolor字体颜色,默认black
fontname字体,默认Times-Roman
fontsize字体尺寸,默认14
rank子图等级限制:same, min, max, sink
rankdir排序方向,可选LR, TB
compoundfalse

除了节点之外,连接线也有其属性,也通过方括号进行设置,与点的区别如下,其中a--b用于设置线,c--d用于设置点

a--b[label="线"]
c--{d[label="点"]}

常用的线属性如下,其中箭头和箭尾的可选值可参考:箭头箭尾

边属性默认值备注:可选值
label描述关系
colorblack箭头颜色
fontcolorblack关系文字颜色
dirforwardforward, back, both, none
arrowheadnormal箭头
arrowtailnormal箭尾
arrowsize1.0箭头尺寸

聚集子图

在Graphviz图中,每个节点都有特定的层级,如果不加说明,那么就逐级递减。通过subgraph可以将多个节点捆绑到一起。示例如下

在这里插入图片描述

代码如下

digraph show{
    rankdir = LR;
size=5
node[shape=record color=gray]
A->{B C}
C->D
subgraph cluster_a{B D}
}

节点结构

对于Record类型的节点来说,可以通过花括号更有层次地填充内容,效果如下

在这里插入图片描述

代码为

digraph show{
node[shape=record color=gray]
  test[label="{A|{B|{C|D}|{E|F|G}}}"]
}
Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐