VS Code画思维导图:Graphviz Markdown Preview

news2024/12/26 21:18:08

文章目录

    • 简介
    • 常见属性
    • 聚集子图
    • 节点结构

简介

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}}}"]
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1191570.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【大模型-第一篇】在阿里云上部署ChatGLM3

前言 好久没写博客了,最近大模型盛行,尤其是ChatGLM3上线,所以想部署试验一下。 本篇只是第一篇,仅仅只是部署而已,没有FINETUNE、没有Langchain更没有外挂知识库,所以从申请资源——>开通虚机——>…

Postgres主键自增时重复键违反唯一约束

错误: 重复键违反唯一约束\"bue_new_copy1_pkey\"\n 详细:键值\"(id)(31)\"已经存在\n 新增的数据的id跟表里面的数据id重复了,这种一般是手动导入数据或者复制表等情况造成的,直接修改表的序列为当前最大的id&#xf…

MCSM面板搭建教程和我的世界Paper服务器开服教程

雨云游戏云VPS服务器用Linux搭建MCSM面板和Minecraft Paper1.20.2服务器教程。 本教程演示安装的MC服是Paper 1.20.2版,其他版本也可以参考本教程,差别不大。 本教程使用Docker来运行mc服,可以方便切换不同Java版本,方便安装多个…

【GEE】9、在GEE中生成采样数据【随机采样】

1简介 在本模块中,我们将讨论以下概念: 如何使用高分辨率图像生成存在和不存在数据集。如何在要素类图层中生成随机分布的点以用作字段采样位置。如何根据参数过滤您的点以磨练您的采样位置。 华盛顿州白杨林旁的落基山麋鹿。 图片来源:美国…

2023.11.7: OpenAI DevDay总结

New Model:ChatGPT4.0 turbo 更长的context:支持长达128000个tokens的context 更好的控制方案: 更有利于API调用JSON Mode Function calling Reproducible outputs 通过一个seed使得模型的回答总是保持一致 Better Knowledge 支持知识检索…

阿里云服务器ECS经济型e实例和u1有什么区别?

阿里云服务器ECS经济型e实例和通用算力型u1实例有什么区别?如何选择?ECS经济型e实例是共享型云服务器,通用算力型u实例是企业级独享型云服务器,e实例性价比高,现在2核2G3M带宽一年99元,云服务器u1价格相对要…

阿里云通用算力型u1服务器和e实例有什么区别?选择攻略

阿里云服务器ECS经济型e实例和通用算力型u1实例有什么区别?如何选择?ECS经济型e实例是共享型云服务器,通用算力型u实例是企业级独享型云服务器,e实例性价比高,现在2核2G3M带宽一年99元,云服务器u1价格相对要…

数据结构:AVL树的旋转(高度平衡树)

1、AVL树简介 AVL树是最先发明的自平衡二叉查找树。在AVL树中任何节点的两个子树的高度最大差别为1,所以它也被称为高度平衡树。增加和删除可能需要通过一次或多次树旋转来重新平衡这个树。AVL树得名于它的发明者G. M. Adelson-Velsky和E. M. Landis,他们…

vue-cal 使用教程

目录 0. 介绍及效果展示 1.vue2环境安装 2.页面引入 3.使用 4.效果图 0. 介绍及效果展示 vue-cal 组件比较灵活,可以随意切换年、月、周、日、时间历图,放几张截图看下效果 1.vue2环境安装 vue3直接可以看本文最下方的API,有详解 npm …

Apache RocketMQ - 概述

2022年,RocketMQ 5.0的正式版发布,相比于4.0版本而言,架构走向云原生化,并且覆盖了更多的业务场景。 如何从互联网时代演进到云时代? 1. 消息队列演进史 操作系统、数据库、中间件是基础软件的三驾马车,…

Python基础教程之十七:Python OrderedDict –有序字典

一个OrderedDict 维护插入顺序添加到字典中的项目。项目的顺序在迭代或序列化时也会保留。 1. Python OrderedDict示例 OrderedDict 是python collections模块的一部分。 要轻松构建OrderedDict,可以OrderedDict在collections模块中使用。 OrderedDictExample.p…

建造者模式(Builder Pattern)

建造者模式(Builder Pattern) 1、类型2、定义3、UML图4、四个角色5、代码6、应用场景 1、类型 创建型 解释:设计模式的创建性类型是一种软件设计模式,它专注于对象的创建机制,帮助我们更加灵活地创建对象实例。创建性…

Python基础教程之十六:Python multidict示例–将单个键映射到字典中的多个值

1.什么是multidict词典> 在python中,“ multidict ”一词用于指代字典,在字典中可以将单个键映射到多个值。例如 多重结构 multidictWithList {key1 : [1, 2, 3],key2 : [4, 5]}multidictWithSet {key1 : {1, 2, 3},key2 : {4, 5}}1. list如果要…

“隐身术”成现实,中科院院士现场表演

(图源:哔哩哔哩) 在“bilibili超级科学晚”活动现场,中国科学院院士褚君浩为我们揭示了“隐身术”的原理。原来,这种神奇的技能是一种科学手段。 褚君浩院士为大家介绍了一种名为“柱镜光栅”的特殊材料,柱…

2.docker镜像的导入导出

目录 概述docker 常用命令下载导出导入镜像结束 概述 docker 常用命令 本章节使用到的命令,总结在此,后面有使用案例。 命令作用docker images显示镜像docker rmi $(docker images -q)删除系统上所有的镜像docker rmi -f强制删除多个镜像 &#xff1a…

MYSQL函数,一篇文章看完!

做程序员的谁会离得开数据库呢?今天就来分享一下我整理的MySQL的常用函数,基本上囊括了平时要用的函数,它们已经陪我走过了不少年头了,风里来雨里去,缝缝补补又几年,希望能帮到你们! 如果数据库…

图解电商系统的架构演进

具体以商城为例, 展示web端应用的架构演变过程。 特点: 1、所有的功能集成在一个项目工程中。 2、所有的功能打在一个war包部署到服务器。 3、通过部署应用集群和数据库集群来提高系统的性能。 优点 1、项目架构简单,前期开发成本低&#xf…

Python基础教程之十九:Python优先级队列示例

1.什么是优先队列 优先级队列是一种抽象数据类型,类似于常规队列或堆栈数据结构,但每个元素还具有与之关联的“优先级”。在优先级队列中,优先级高的元素先于优先级低的元素提供。如果两个元素具有相同的优先级,则将根据其在队列…

Python机器学习算法入门教程(第四部分)

接着Python机器学习算法入门教程(第三部分),继续展开描述。 十九、信息熵是什么 通过前两节的学习,我们对于决策树算法有了大体的认识,本节我们将从数学角度解析如何选择合适的“特征做为判别条件”,这里…

pdf.js不分页渲染(渲染完整内容)

直接上代码 首先引入pdf.js 和 pdf.worker.js // 渲染pdf const pdfUrl test1.pdf, _targetDom pdf-container;pdfjsLib.getDocument(pdfUrl).promise.then(async doc > {let _i 0;for (let item of new Array(doc.numPages).fill()) {await renderOtherPage(doc, _i, _t…