OD(13)之Mermaid饼图和象限图

OD(13)之Mermaid饼图和象限图使用详解

Author: Once Day Date: 2024年2月29日

漫漫长路才刚刚开始…

全系列文章可参考专栏: Mermaid使用指南_Once_day的博客-CSDN博客

参考文章:

  • 关于 Mermaid | Mermaid 中文网 (nodejs.cn)
  • Mermaid | Diagramming and charting tool
  • ‍‌⁡⁤‍‍⁢‌‬⁡⁤⁢‍‌⁣⁢⁢⁤⁣‌‌⁢⁣⁢⁤⁡‌‌⁤⁤⁢⁡⁡⁢‍⁢⁣⁤‌Mermaid 绘图语法介绍 - 飞书云文档 (larkoffice.com)
  • Draw Diagrams With Markdown - Typora Support (typoraio.cn)
  • Mermaid 使用教程:从入门到精通——流程图、时序图、甘特图、类图等图形绘制轻松搞定 - 知乎 (zhihu.com)
  • 饼图 | Mermaid 中文网 (nodejs.cn)
  • 象限图 | Mermaid 中文网 (nodejs.cn)
  • mermaid live 在线mermiad工具

文章目录

      • OD(13)之Mermaid饼图和象限图使用详解
        • 1. 饼图
          • 1.1 介绍
          • 1.2 语法
          • 1.3 修改饼图标签的轴向位置
        • 2. 象限图
          • 2.1 介绍
          • 2.2 语法
          • 2.3 图表配置
          • 2.4 图表主题配色
        • 附录:
          • 附录1. 四色性格理论

1. 饼图
1.1 介绍

Mermaid是一种流行的基于文本的图表绘制语法和工具,它使得开发人员能够使用简洁的文本描述来生成复杂的图表,而饼图是其支持的多种图表类型之一。Mermaid最初由Knut Sveidqvist创造,目的是为了简化图表的创建过程,让非设计专业的开发人员也能轻松作图。自从它的推出以来,Mermaid迅速赢得了广泛的用户基础,尤其是在程序员和技术文档编写者中。

Mermaid的饼图(Pie chart)通过简单的文本标记语言提供了创建饼图的能力。饼图是一种表现数据比例关系的图形,通过将圆饼分割成几个扇区来显示每一部分的大小与整体的比例关系。在Mermaid中,用户可以快速编写几行代码,就能生成一个清晰、美观的饼图,非常适合在Markdown文件、技术文档或网页中快速嵌入图形。

下面是一个简单的示例:

pie 
	showData
	title Mermaid饼图示例
	"A类物品" : 120
	"B类物品" : 240
	"C类物品" : 500

在这里插入图片描述

1.2 语法

在Mermaid中,饼图使用pie关键字来声明,后续跟随的是一系列的键值对,用以描述各个扇区的标签和数值。

下面是一份Mermaid饼图的基本语法示例:

pie
	showData
    title Key elements in Product X
    "Key lime pie" : 42.96
    "Cherry pie" : 12.18
    "Pumpkin pie" : 20.29
    "Apple pie" : 24.57

这里,我们定义了一个标题为“Key elements in Product X”的饼图,其中包含四个扇区,每一个扇区由冒号分隔的两部分组成:左边是扇区的名称,右边是对应的数值。在这个例子中,我们可以看到不同馅料的派对应的数值,这些数值将决定饼图中每个扇区的大小。

下面详细解释这个语法的各个组成部分:

  • pie 关键字:这是开始绘制饼图的标记。
  • showData关键字: 在图例后面显示真实数据(即42.96/12.18等实际数据显示出来)
  • title 关键字:后面跟随的文本是饼图的标题,它会显示在饼图的上方或中心。
  • 扇区定义:每一行定义了一个扇区,其中包括扇区的名称和数值,例如 "Key lime pie" : 42.96 表示一个名为“Key lime pie”的扇区,它在饼图中占的比例为42.96%(相对比例,计算整体之和再分散比例),支持最多两位小数。

整体语法规则如下所示:

[pie] 
	[showData] (OPTIONAL)
	[title] [titlevalue] (OPTIONAL) 
	"[datakey1]" : [dataValue1] 
	"[datakey2]" : [dataValue2] 
	"[datakey3]" : [dataValue3]
	......
1.3 修改饼图标签的轴向位置

通过增加预配置字段来实现textPosition,可以改变饼图切片标签的轴向位置,从中心的 0.0 到圆外边缘的 1.0:

%%{init: {"pie": {"textPosition": 0.4}, "themeVariables": {"pieOuterStrokeWidth": "5px"}} }%%
pie showData
    title Key elements in Product X
    "Calcium" : 42.96
    "Potassium" : 50.05
    "Magnesium" : 10.01
    "Iron" :  5

在这里插入图片描述

通过修改textPosition的值,可以将46%/40等标签位置进行偏移

2. 象限图
2.1 介绍

Mermaid的象限图功能允许用户创建象限图,这种图表通常用于分析和展示数据点在两个维度上的分布,广泛应用于优先级划分、风险评估、市场分析等领域。象限图将图表区域划分为四个部分,通常以水平和垂直轴的中点为分界,形成四个象限,每个象限代表不同的数据或特性组合。

在 Mermaid 中创建象限图,首先需要定义图表的标题、x轴和y轴的标签,以及每个象限的文本。数据点通过 x 和 y 坐标值来表示,这些值通常在 0 到 1 的范围内。Mermaid 提供了丰富的配置选项,允许用户自定义图表的尺寸、填充颜色、文本样式等。

下面以四色性格理论来制作一个象限图:

quadrantChart title 四色性格
quadrant-1 "Dominance(支配型)"
quadrant-2 "Influence(影响型)"
quadrant-3 "Steadiness(稳定型)"
quadrant-4 "Conscientiousness(尽责型)"
"A员工": [0.3,0.6]
"B员工": [0.45,0.23]
"C员工": [0.57,0.69]
"D员工": [0.78,0.34]
"E员工": [0.40,0.34]
"F员工": [0.35,0.78]

在这里插入图片描述

2.2 语法

Mermaid象限图的基本语法总结:

  1. 定义图表类型: 使用 quadrantChart 关键字来声明这是一个象限图。
  2. 设置标题: 使用 title 关键字后跟冒号和图表的标题文本。标题是图表的简短描述,它将始终渲染在图表顶部。
  3. x-axis定义 x 轴的标签:使用 x-axis 关键字后跟冒号和轴的描述文本,中间用 -->分隔两个方向的描述。x-axis <text> --> <text> 左轴和右轴文本都将被渲染,x-axis <text> 仅渲染左轴文本。
  4. y-axis定义 y 轴的标签:与 x 轴类似,使用 y-axis 关键字,语法和x-axis一致。
  5. 定义象限文本: 使用 quadrant-[1-4] 关键字来定义每个象限的文本,其中 [1-4] 是象限的编号,分别是右上象限,左上象限,左下象限,右下象限。
  6. 添加数据点: 使用 [name]: [x, y] 的格式来添加数据点,其中 [name] 是数据点的名称,[x, y] 是数据点在 x 轴和 y 轴上的坐标值,对于点x和y值,最小值为0,最大值为1。

如果图表中没有可用的点,则轴文本和象限都将在各自象限的中心呈现。如果有点,x轴标签将从相应象限的左侧呈现,它们也将显示在图表的底部,y轴标签将在相应象限的底部呈现,象限文本将在相应象限的顶部呈现。

2.3 图表配置

象限图支持很多图标配置字段,通过%%{init: { ... }}%%语法,来更改象限图各种图表配置:

参数描述默认值
chartHeight图表的高度500
chartWidth图表的宽度500
pointLabelFontSize点文本字体大小12
pointRadius要绘制的点的半径5
pointTextPadding点和下面文本之间的填充5
quadrantExternalBorderStrokeWidth象限外边框描边宽度2
quadrantInternalBorderStrokeWidth象限内的边框描边宽度1
quadrantLabelFontSize象限文本字体大小16
quadrantPadding所有象限外的填充5
quadrantTextTopPadding当文本绘制在顶部时象限文本顶部填充(那里没有数据点)5
titlePadding标题的顶部和底部填充10
titleFontSize标题字体大小20
xAxisLabelPaddingx 轴文本的顶部和底部填充5
xAxisLabelFontSizeX 轴文本字体大小16
xAxisPositionx 轴的位置(顶部、底部)如果有点,则 x 轴将始终渲染在底部‘top’
yAxisLabelPaddingy 轴文本的左右填充5
yAxisLabelFontSizeY 轴文本字体大小16
yAxisPositiony 轴位置(左、右)‘left’

下面是一个简单示例,修改图表高度和宽度,以及pointTextPadding点和下面文本之间的填充,如下:

%%{init: {"quadrantChart": {"chartHeight": 300, "chartWidth": 800, "pointTextPadding": 10}}}%%
quadrantChart title 四色性格
quadrant-1 "Dominance(支配型)"
quadrant-2 "Influence(影响型)"
quadrant-3 "Steadiness(稳定型)"
quadrant-4 "Conscientiousness(尽责型)"
"A员工": [0.3,0.6]
"B员工": [0.45,0.23]
"C员工": [0.57,0.69]

在这里插入图片描述

2.4 图表主题配色
参数描述
quadrant1Fill右上象限的填充颜色
quadrant2Fill左上象限的填充颜色
quadrant3Fill左下象限的填充颜色
quadrant4Fill右下象限的填充颜色
quadrant1TextFill右上象限的文本颜色
quadrant2TextFill左上象限的文本颜色
quadrant3TextFill左下象限的文本颜色
quadrant4TextFill右下象限的文本颜色
quadrantPointFill点填充颜色
quadrantPointTextFill点文本颜色
quadrantXAxisTextFillX 轴文本颜色
quadrantYAxisTextFillY 轴文本颜色
quadrantInternalBorderStrokeFill象限内边框颜色
quadrantExternalBorderStrokeFill象限外边框颜色
quadrantTitleFill标题颜色

我们按照四色性格理论,给每个象限补上对应的颜色:

%%{init: {"quadrantChart": {"chartHeight": 300, "chartWidth": 800, "pointTextPadding": 10}, "themeVariables": {"quadrant1Fill": "#ff0000", "quadrant2Fill": "#FFFF00", "quadrant3Fill": "#32CD32", "quadrant4Fill": "#800080"}}}%%
quadrantChart title 四色性格
quadrant-1 "Dominance(支配型)"
quadrant-2 "Influence(影响型)"
quadrant-3 "Steadiness(稳定型)"
quadrant-4 "Conscientiousness(尽责型)"
"A员工": [0.3,0.6]
"B员工": [0.45,0.23]
"C员工": [0.57,0.69]

在这里插入图片描述

附录:
附录1. 四色性格理论

四色性格理论,又名DISC行为风格分析,是一种广泛应用于个人发展、团队建设和职业规划中的心理评估工具。DISC是由威廉·莫尔顿·马斯顿(William Moulton Marston)在20世纪早期提出的理论,其名称来源于四个代表不同性格特质的英文单词:Dominance(支配型)、Influence(影响型)、Steadiness(稳定型)和Conscientiousness(尽责型)。

四色性格理论通过将DISC理论中的行为特征与颜色相关联,使得理论更加形象易懂。这四种颜色通常是:

  • 红色:代表Dominance(支配型),此类个体通常表现为竞争力强、果断和直接的。
  • 黄色:代表Influence(影响型),这类人往往热情、乐观、善于交际。
  • 绿色:代表Steadiness(稳定型),特点是耐心、合作、善于倾听。
  • 蓝色:代表Conscientiousness(尽责型),此类性格的人谨慎、精确、逻辑性强。

在象限图中,通常将Dominance和Influence放在上方两个象限,表示这两种性格倾向于更加外向和主动;而Steadiness和Conscientiousness放在下方两个象限,代表这两种性格更倾向于内向和被动。同时,Dominance和Conscientiousness放在左侧象限,表示更倾向于任务导向;Influence和Steadiness放在右侧象限,表示更倾向于人际导向。







Alt

Once Day

也信美人终作土,不堪幽梦太匆匆......

如果这篇文章为您带来了帮助或启发,不妨点个赞👍和关注,再加上一个小小的收藏⭐!

(。◕‿◕。)感谢您的阅读与支持~~~

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

layui中,父页面与子页面,函数方法的相互调用、传参

<%--父页面--%> <script type"text/javascript">var KaoHaoType 0; // 考号类型 自定义参数1// 选取考号类型function SelectKaoHaoType(callBack) {KaoHaoType 0; // 默认选择填涂考号layer.open({type: 2, title: 请选择 考号区类型, ar…

Linux信号【保存-处理】

目录 前言&#xff1a; 1、再次认识信号 1.1、概念 1.2、感性理解 1.3、在内核中的表示 1.4、sigset_t 信号集 2、信号集操作函数 2.1、增删改查 2.2、sigprocmask 2.3、sigpending 3.信号的处理机制 3.1处理情况 3.2合适时机 4用户态与内核态 4.1、概念 4.2、…

Python:练习:编写一个程序,写入一个美金数量,然后显示出如何用最少的20美元、10美元、5美元和1美元来付款

案例&#xff1a; python编写一个程序&#xff0c;写入一个美金数量&#xff0c;然后显示出如何用最少的20美元、10美元、5美元和1美元来付款&#xff1a; Enter a dollar amout:93 $20 bills: 4 $10 bills: 1 $5 bills:0 $1 bills:3 思考&#xff1a; 写入一个美金数量&…

Android NDK底层BUG,记录:connect、socket(AF_INET, SOCK_STREAM, 0) 等系统套接字接口函数崩溃问题。

在 Android NDK 之中&#xff0c;看上去调用 connect、socket 函数是不会崩溃的&#xff0c;但这是否定的&#xff0c;它在特定的情况下存在必定的崩溃的问题。 但是这种情况放到MACOS、LINUX、WINDOWS都不会崩溃&#xff0c;而它崩溃的点出现在操作系统底层。 人们需要参考这…

设计推特(Leetcode355)

例题&#xff1a; https://leetcode.cn/problems/design-twitter/ 分析&#xff1a; 推特其实类似于微博&#xff0c;在微博中可以发送文章。 求解这类题目&#xff0c;我们需要根据题目需求&#xff0c;利用面向对象的思想&#xff0c;先对需求做一个抽象&#xff0c;看看能…

TDengine 研发分享:利用 Windbg 解决内存泄漏问题的实践和经验

内存泄漏是一种常见的问题&#xff0c;它会导致程序的内存占用逐渐增加&#xff0c;最终导致系统资源耗尽或程序崩溃。AddressSanitizer (ASan) 和 Valgrind 是很好的内存检测工具&#xff0c;TDengine 的 CI 过程就使用了 ASan 。不过这次内存泄漏问题发生在 Windows 下&#…

MYSQL01高级_Linux版安装、各级别字符集、字符集与比较规则、SQL大小写规范

文章目录 ①. MySQL - linux版安装②. 字符集的相关操作③. 各级别的字符集④. 字符集与比较规则(了解)⑤. SQL大小写规范⑥. sql_mode的合理设置 ①. MySQL - linux版安装 ①. 进入mysql官网,找到安装文件 ②. 将抽取出来的文件放在linux下的opt下 MySQL Community Serv…

视频在线压缩

video2edit 一款免费的在线视频编辑软件&#xff0c;可以进行视频合并、视频剪辑、视频压缩以及转换视频格式等。 链接地址&#xff1a;在线视频编辑器和转换器 - 编辑&#xff0c;转换和压缩视频文件 打开视频压缩页面&#xff0c;上传想要压缩视频&#xff0c;支持MP4&…

ffmpeg单张图片生成固定时长的视频

ffmpeg -r 25 -f image2 -loop 1 -i fps_1.jpg -vcodec libx264 -pix_fmt yuv420p -s 1080*1920 -r 25 -t 30 -y fps.mp4这个命令将 fps_1.jpg 图片转换为一个 30 秒长的视频&#xff0c;分辨率为 1920x1080&#xff0c;帧率为 25 帧/秒&#xff0c;并使用 libx264 编码器进行压…

1.3 vue ui框架-element-ui框架

1 前言 ElementUI是一套基于VUE2.0的桌面端组件库&#xff0c;ElementUI提供了丰富的组件帮助开发人员快速构建功能强大、风格统一的页面。 ElementUI官网 https://element.eleme.io 2 安装 运行命令 cnpm i element-ui -S -S表示只在该项目下安装&#xff0c;不是全局安…

C++指针(二)

个人主页&#xff1a;PingdiGuo_guo 收录专栏&#xff1a;C干货专栏 文章目录 1.数组指针 1.1数组指针的概念 1.2数组指针的用处 1.3数组指针的操作 1.4二维数组如何访问 1.5数组指针访问流程 1.6数组指针的练习题 2.指针数组 2.1指针数组的概念 2.2指针数组的用处 2…

使用Python,networkx绘制有向层级结构图

使用Python&#xff0c;networkx绘制有向层级结构图 1. 效果图2. 源码2.1 tree.txt2.2 pyNetworkx.py参考 上一篇介绍了&#xff1a;1. 使用Python&#xff0c;networkx对卡勒德胡赛尼三部曲之《群山回唱》人物关系图谱绘制 当前博客介绍&#xff1a; 2. 使用Python&#xff0c…

【C++】map和set——树形结构的关联式容器

目录 一、序列式容器和关联式容器 二、键值对pair 三、树形结构的关联式容器 3.1 set 3.1.1.set的模板参数 3.1.2. set的构造 3.1.3. set的迭代器 3.1.4. set的容量 3.1.5. set的操作 3.1.6. set的修改 3.1.7 set的使用示范 3.2 map 3.2.1. map的模板参数说明 3.…

解决android studio build Output中文乱码

1.效果如下所示&#xff1a; 代码运行报错的时候&#xff0c;Build Output报的错误日志中中文部分出现乱码&#xff0c;导致看不到到底报的什么错。 2.解决办法如下&#xff1a; 点击Android studio开发工具栏的Help-Edit Custom VM Options....&#xff0c;Android studio会…

【Acwing】差分矩阵

图1&#xff1a;a和b数组映射表 由于a是b的前缀和数组&#xff0c;因此改变b[ x1][ y1]之后&#xff0c;受到影响的a中元素如右半图所示 图2&#xff1a;求b数组的前缀和 #include<bits/stdc.h> using namespace std;int n,m,q; int a[1010][1010]; int b[1010][1010]…

使用Fabric创建的canvas画布背景图片,自适应画布宽高

之前的文章写过vue2使用fabric实现简单画图demo&#xff0c;完成批阅功能&#xff1b;但是功能不完善&#xff0c;对于很大的图片就只能显示一部分出来&#xff0c;不符合我们的需求。这就需要改进&#xff0c;对我们设置的背景图进行自适应。 有问题的canvas画布背景 修改后的…

【字典树】【KMP】【C++算法】3045统计前后缀下标对 II

作者推荐 动态规划的时间复杂度优化 本文涉及知识点 字符串 字典树 KMP 前后缀 LeetCode:3045统计前后缀下标对 II 给你一个下标从 0 开始的字符串数组 words 。 定义一个 布尔 函数 isPrefixAndSuffix &#xff0c;它接受两个字符串参数 str1 和 str2 &#xff1a; 当 st…

k8s-项目测试环境部署

部署规划 概述 项目开发好后&#xff0c;我们需要部署&#xff0c;我们接下来就基于 阿里云云效 阿里云容器镜像服务 k8s 搭建部署环境 阿里云云效 : 放代码&#xff0c;可以做cicd&#xff08;https://www.aliyun.com/product/yunxiao&#xff09; 阿里云容器镜像服务 :…

在 Linux 环境下安装 Kibana

目录 一、Kibana 是什么 二、在 Linux 环境下安装 Kibana 1、下载安装包 2、解压 3、修改 Kibana的配置文件 config/kibana.yml 4、启动 5、浏览器登录 Kibana 6、测试查询 一、Kibana 是什么 Kibana 是通向 Elastic 产品集的窗口。 它可以在 Elasticsearch 中对数据进…

java爬取深圳新房备案价

Java爬取深圳新房备案价 这是我做好效果,一共分3个页面 1、列表;2、统计;3、房源表 列表 价格分析页面 房源页面 一、如何爬取 第一步:获取深圳新房备案价 链接是:http://zjj.sz.gov.cn/ris/bol/szfdc/index.aspx 第二步:通过楼盘名查询获取明细 链接:http://z…