OD(11)之Mermaid时间线图(Timeline diagram)使用详解

news2025/1/18 21:16:11

OD(11)之Mermaid时间线图(Timeline diagram)使用详解

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

漫漫长路才刚刚开始…

全系列文章可参考专栏: Mermiad使用指南_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 live 在线mermiad工具

文章目录

      • OD(11)之Mermaid时间线图(Timeline diagram)使用详解
        • 1. 概述
          • 1.1 Mermaid时间线图介绍
          • 1.2 Mermaid时间线图实例
        • 2. 具体使用
          • 2.1 时间线数据(事件)
          • 2.2 分组功能(section)
          • 2.3 多行文本换行
          • 2.4 修改配置颜色
          • 2.5 更改默认主题色

1. 概述
1.1 Mermaid时间线图介绍

Mermaid是一个轻量级的、基于文本的图表绘制工具,它允许开发者使用文本描述来生成图表,这使得图表的创建和维护变得更加简单和高效。Mermaid可以创建多种图表,其中时间线图(Timeline Diagram)是一种表示时间顺序的图表,它展示了一系列事件按时间发生的顺序。

维基百科:时间线是一种图表,用于说明事件、日期或时间段的年表。它通常以图形方式渲染以指示时间的流逝,并且通常按时间顺序组织。基本时间线按时间顺序渲染事件列表,通常使用日期作为标记。时间线还可以用来显示事件之间的关系,例如一个人一生中的事件之间的关系。

时间线图的历史可以追溯到古代,但在数字化时代,这类图形以新的形式复兴。随着项目管理和历史研究的需求日渐增长,时间线图成为了一种重要的视觉工具,帮助人们理解复杂的时间关系和发展脉络。

Mermaid时间线图的用处非常广泛,尤其在项目管理、教育、历史研究以及任何需要时间可视化的领域。它可以帮助项目经理规划和跟踪项目的关键里程碑,也能辅助学者们整理和展示研究成果中的时间序列。在商业分析中,时间线图可以用来展示产品的市场发展历程。

使用Mermaid时间线图的优点在于它的简洁性和易于理解。你只需要使用简单的文本描述,就能生成一个清晰、直观的时间线图。此外,由于这是一个基于文本的图表工具,它非常适合与版本控制系统一起使用,这意味着你可以方便地跟踪图表的变更历史。

然而,Mermaid的一个局限性在于它的美观程度和定制能力可能不如一些专业的图表软件。对于要求极高的图形设计来说,Mermaid可能无法完全满足需求。但对于大多数技术性文档或者快速可视化的场合,Mermaid的时间线图是一个极佳的选择。

总的来说,Mermaid时间线图是一个简单、高效的工具,它使得时间序列的可视化变得轻松易行。尽管它可能不适合所有场合,但在快速生成、易于维护且足够表达概念的情况下,它是一种非常有价值的工具。

1.2 Mermaid时间线图实例

下面是一个Mermaid时间线图的示例代码:

%%{init: {'theme':'default'}}%%
timeline
	title mermiad时间线图示例(成长)
    section 少年
        2015: 高中
        2018: 大学 
    section 青年
        2023: 工作
        2024: 创业

在这里插入图片描述

这段代码的含义如下:

  • 首先,%%{init: {'theme':'default'}}%% 是Mermaid的配置代码,用于设置图表的主题。这里选择的是默认主题。

  • timeline 关键字标志着这个Mermaid图表是一个时间线图。

  • title关键字可以向时间线添加标题,后面接标题文本。

  • section 少年/青年 开始了一个时间线的段落,这里称之为“少年/青年”。这个名称可以自定义,代表时间线图中的一个部分或者分类。

  • 2015: 高中等等是主要的时间线数据(事件描述),其中始终以时间段开头,后跟冒号,然后是事件的文本。可以选择添加第二个冒号,然后添加事件的文本,在每个时间段内拥有一个或多个事件。

这个代码示例展示了如何在Mermaid中创建一个简单的时间线图,定义了两个部分,每个部分包含两个事件,并通过时间点和相对时间安排了事件的顺序。这种方式使得项目的时间规划和事件的时间关系一目了然。在实际使用中,你可以根据需要添加更多的事件和段落,以及调整它们的状态和描述,从而创建出符合实际需求的时间线图。

2. 具体使用
2.1 时间线数据(事件)

主要有三种语法格式,时间段和事件都是简单的文本,不限于数字,如下所示:

1. {time period} : {event}
2. {time period} : {event} : {event}
3. {time period} : {event}
             	 : {event}
              	 : {event}

事件的顺序很重要,因为时间不是按照time period排序,而是按照{time period} : {event}文本从上到下的顺序,依次从左到右排序,这个顺序即为时间线的顺序。该特定时间段的第一个事件将放置在顶部,最后一个事件将放置在底部。

下面是一个简单示例来描述排序规则:

timeline
    title 时间线图排序规则
    第一阶段 : 左边第一件事 : 左边第二件事
	第二阶段 : 中间第一件事
	第三阶段 : 右边第一件事 : 右边第二件事 : 右边第三件事

在这里插入图片描述

2.2 分组功能(section)

Mermaid时间线图中的“section”功能是用来对时间线的不同部分进行分组的。这是一个组织时间线信息的有力工具,它可以帮助你将相关事件按照章节、阶段、年龄或任何逻辑组别进行划分,使得时间线更加清晰和有条理。每个“section”都可以包含一个或多个事件(events),并且每个事件都可以有不同的状态和时长。这种分组方式尤其适合在项目管理、产品开发或历史时间线上展示不同的发展阶段或时期。

下面是一个简单的示例,展示了如何在Mermaid时间线图中使用“section”对事件进行分组:

timeline
    section 第一阶段
        2023-01-10 : 完成项目启动会议
        2023-02-10 : 完成需求分析
        
    section 第二阶段
        2023-04-15 : 开发阶段开始
        2023-04-25 : 第一次迭代发布
        
    section 第三阶段
        2023-05-15 : 测试阶段
        2023-07-01 : 项目上线

在这里插入图片描述

在这个示例中:

  • timeline 关键词标志着开始了一个时间线图的定义。

  • section 第一阶段 定义了时间线图的第一个分组,表示项目的第一阶段,完成项目启动会议和需求分析。

  • section 第二阶段section 第三阶段 同理,分别定义了项目的第二和第三阶段,并且在各自的阶段内列出了相应的事件。

通过使用“section”功能,Mermaid时间线图可以有效地展示项目或事件的不同阶段,帮助观众快速把握整体的时间结构和进度。这种按章节或年份分组的方式也使得时间线图在视觉上更加分明,便于理解和沟通。

2.3 多行文本换行

Mermaid时间线图(Timeline Diagram)提供了丰富的功能,以便更好地展示和管理时间线上的事件。其中,长时间或事件的文本换行功能是一个重要的功能,因为它可以帮助你更有效地管理那些具有冗长描述的事件,确保时间线的可读性和整洁性。

在Mermaid中,可以使用<br>标签来手动插入换行符,这可以将长文本分割成多行显示。这对于需要在时间线图中包含多行详细描述的情况尤其有用。

下面是一个使用文本换行功能的Mermaid时间线图示例:

timeline
    section 阶段一
        2023-01-10 : 项目启动会议
        2023-01-15 : 需求收集和分析工作<br>包括市场调研和用户访谈
        
    section 阶段二
        2023-04-15 : 开发阶段启动
        2023-04-25 : 第一次迭代发布<br>实现核心功能
        
    section 阶段三
        2023-05-15 : 测试阶段
        2023-07-01 : 项目上线准备<br>完成最终测试和部署

在这里插入图片描述

在这个示例中,<br>被放置在长文本字符串的适当位置,以创建文本换行,例如:

“需求收集和分析工作<br>包括市场调研和用户访谈”和“第一次迭代发布<br>实现核心功能”

这样做可以让文本在时间线的事件框中分布在多行,而不是一行内过长导致难以阅读。

使用这个功能时,重要的是要找到合适的位置进行换行,以保持信息的连贯性和清晰度,同时也要考虑到整体的布局美观。这样,不仅确保了时间线图的信息易于理解,也提高了视觉展示的专业性。

2.4 修改配置颜色

默认情况下,每个时间段(及其相应的事件)都有自己的配色方案,都是预定义的颜色。

可以使用 disableMultiColor 选项禁用多色选项,这将使所有时间段和事件遵循相同的配色方案。

%%{init: { 'theme': 'base', 'timeline': {'disableMulticolor': true}}}%%
timeline
	title 一样的颜色
	2023: 打工人
	2024: 自由人
	2025: 自由职业

在这里插入图片描述

还可以使用 cScale0cScale11 主题变量自定义配色方案,包括前景色和背景色,最多12个,超过的事件之后将重复配色:

%%{init: { 'theme': 'base', 'themeVariables': {
              'cScale0': '#ff0000', 'cScaleLabel0': '#ffffff',
              'cScale1': '#00ff00',
              'cScale2': '#0000ff', 'cScaleLabel2': '#ffffff'
       }}}%%
timeline
	title 指定红色/绿色/蓝色
	2023: 打工人
	2024: 自由人
	2025: 自由职业

在这里插入图片描述

2.5 更改默认主题色

Mermaid 支持一系列预定义的主题,可以使用它们来找到适合的主题,通过theme来指定。

%%{init: { 'theme': 'base' } }%%
timeline
	title 主题色展示
    2002 : LinkedIn
    2004 : Facebook : Google
    2005 : Youtube
    2006 : Twitter
    2007 : Tumblr
    2008 : Instagram
    2010 : Pinterest

(1) 基础主题色(base)

在这里插入图片描述

(2) 森林主题(Forest Theme)

在这里插入图片描述

(3) 黑暗主题(Dark Theme)

在这里插入图片描述

(4) 默认主题(Default Theme)

在这里插入图片描述

(5) 默认主题

在这里插入图片描述







Alt

Once Day

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

如果这篇文章为您带来了帮助或启发,不妨点个赞👍和关注,再加上一个小小的收藏⭐!
(。◕‿◕。)感谢您的阅读与支持~~~

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

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

相关文章

YOLO如何训练自己的模型

目录 步骤 一、打标签 二、数据集 三、跑train代码出模型 四、跑detect代码出结果 五、详细操作 步骤 一、打标签 &#xff08;1&#xff09;在终端 pip install labelimg &#xff08;2&#xff09;在终端输入labelimg打开 如何打标签&#xff1a; 推荐文章&#xf…

(每日持续更新)jdk api之ObjectOutputStream基础、应用、实战

博主18年的互联网软件开发经验&#xff0c;从一名程序员小白逐步成为了一名架构师&#xff0c;我想通过平台将经验分享给大家&#xff0c;因此博主每天会在各个大牛网站点赞量超高的博客等寻找该技术栈的资料结合自己的经验&#xff0c;晚上进行用心精简、整理、总结、定稿&…

vue2和vue3对比(语法层面)

阅读文章你将收获&#xff1a; 1 了解不使用组件化工具时&#xff0c;vue在html是如何使用的 2 知道vue2的生命周期函数有哪些 3 知道如何在组件化开发中使用vue 4 大致了解了vue2和vue3在使用上什么不同 最后&#xff1a;vue2和vue3除了下面我列出的有差异化的地方&…

Langchain-Chatchat部署总结

项目地址&#xff1a; https://github.com/chatchat-space/Langchain-Chatchat 整体安装比较方便&#xff0c;在阿里云购买云主机&#xff0c;购买的国外站点机器&#xff0c; 该项目运行最佳坏境为 Linux Ubuntu 22.04.5Python 版本 3.11.7CUDA 版本: 12.1torch2.1.2 使…

SpringBoot Admin 详解

SpringBoot Admin 详解 一、Actuator 详解1.Actuator原生端点1.1 监控检查端点&#xff1a;health1.2 应用信息端点&#xff1a;info1.3 http调用记录端点&#xff1a;httptrace1.4 堆栈信息端点&#xff1a;heapdump1.5 线程信息端点&#xff1a;threaddump1.6 获取全量Bean的…

找游戏 - 华为OD统一考试(C卷)

OD统一考试&#xff08;C卷&#xff09; 分值&#xff1a; 200分 题解&#xff1a; Java / Python / C 题目描述 小扇和小船今天又玩起来了数字游戏&#xff0c; 小船给小扇一个正整数 n&#xff08;1 ≤ n ≤ 1e9&#xff09;&#xff0c;小扇需要找到一个比 n 大的数字 m&a…

PMP项目管理考试要注意些什么?

PMP考试和PMP备考过程中应该注意哪些问题&#xff1f; PMP备考完成后就要迎接实战考试了&#xff0c;考试前千万不要有多余的想法&#xff0c;顺其自然就行了&#xff0c;我想大家各种紧张、各种忧虑的原因大抵是因为考试成本考&#xff0c;担心考不过&#xff0c;其实只要你在…

【并发】CAS原子操作

1. 定义 CAS是Compare And Swap的缩写&#xff0c;直译就是比较并交换。CAS是现代CPU广泛支持的一种对内存中的共享数据进行操作的一种特殊指令&#xff0c;这个指令会对内存中的共享数据做原子的读写操作。其作用是让CPU比较内存中某个值是否和预期的值相同&#xff0c;如果相…

Linux——缓冲区封装系统文件操作

&#x1f4d8;北尘_&#xff1a;个人主页 &#x1f30e;个人专栏:《Linux操作系统》《经典算法试题 》《C》 《数据结构与算法》 ☀️走在路上&#xff0c;不忘来时的初心 文章目录 一、FILE二、封装系统接口实现文件操作1、text.c2、mystdio.c3、mystdio.h 一、FILE 因为IO相…

基于粒子群算法优化BP神经网络的黄酮含量预测,基于pso-bp的黄酮水平预测,基于bp神经网络的黄酮预测

目录 摘要 BP神经网络的原理 BP神经网络的定义 BP神经网络的基本结构 BP神经网络的神经元 BP神经网络的激活函数, BP神经网络的传递函数 粒子群算法的原理及步骤 基于粒子群算法优化BP神经网络的黄酮含量预测,基于pso-bp的黄酮水平预测,基于bp神经网络的黄酮预测 matlab代码…

【线程池项目(三)】线程池CACHED模式的实现

在上一篇【线程池项目&#xff08;二&#xff09;】线程池FIXED模式的实现 中我们了解到到线程池fixed模式的大致实现原理&#xff0c;但对于一个比较完整的项目来说&#xff0c;我们还需要考虑到可能会发生的各种情况&#xff0c;比如用户提交的任务数可能在某一时刻急剧增加&…

5.2 Ajax 数据爬取实战

目录 1. 实战内容 2、Ajax 分析 3、爬取内容 4、存入MySQL 数据库 4.1 创建相关表 4.2 数据插入表中 5、总代码与结果 1. 实战内容 爬取Scrape | Movie的所有电影详情页的电影名、类别、时长、上映地及时间、简介、评分&#xff0c;并将这些内容存入MySQL数据库中。 2、…

在springboot中调用openai Api并实现流式响应

之前在《在springboot项目中调用openai API及我遇到的问题》这篇博客中&#xff0c;我实现了在springboot中调用openai接口&#xff0c;但是在这里的返回的信息是一次性全部返回的&#xff0c;如果返回的文字比较多&#xff0c;我们可能需要等很久。 所以需要考虑将请求接口响应…

LeetCode--代码详解 235.二叉搜索树得最近公共祖先

235.二叉搜索树得最近公共祖先 题目 给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为&#xff1a;“对于有根树 T 的两个结点 p、q&#xff0c;最近公共祖先表示为一个结点 x&#xff0c;满足 x 是 p、q 的祖先且 x 的深度尽可…

【架构】面向人工智能 (AI) 的硬件的可靠性(2021)

由于激进的技术扩展&#xff0c;现代系统越来越容易受到可靠性威胁的影响&#xff0c;例如软错误、老化和工艺变化。这些威胁在硬件级别表现为位翻转&#xff0c;并且根据位置&#xff0c;可能会损坏输出&#xff0c;从而导致不准确或潜在的灾难性结果。 传统的缓解技术基于冗…

计算机网络Day03--物理层

信道复用技术 频分复用 时分复用 统计时分复用 频分复用&#xff08;FDM&#xff09; 最基本 将整个宽带分为多份&#xff0c;用户在分配到一定的频带后&#xff0c;在通信过程中自始至终都使用这个频带 所有的用户在同一时间占用不同的带宽资源&#xff0c;以并行的方式工…

一文带你彻底搞懂 Python 编程进阶之闭包

什么是闭包&#xff1a;在函数嵌套的情况下&#xff0c;内部的函数使用外部函数中的变量&#xff0c;并且外部函数返回了内部函数&#xff0c;我们将这个内部函数称之为闭包。 闭包是实现装饰器的基础&#xff0c;通过装饰器可以在不修改原函数代码的情况下增强其功能。 在Py…

JDK10新特性:探索Java10的编程新境界

博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》 — 面试准备的宝典&#xff01;《IDEA开发秘籍》 — 提升你的IDEA技能&#xff01;《100天精通鸿蒙》 …

nodejs+vue+ElementUi废品废弃资源回收系统

系统主要是以后台管理员管理为主。管理员需要先登录系统然后才可以使用本系统&#xff0c;管理员可以对系统用户管理、用户信息管理、回收站点管理、站点分类管理、站点分类管理、留言板管理、系统管理进行添加、查询、修改、删除&#xff0c;以保障废弃资源回收系统系统的正常…

异步框架Celery在Django中的运用

参考博客&#xff1a;https://www.cnblogs.com/pyedu/p/12461819.html 参考视频&#xff1a;01 celery的工作机制_哔哩哔哩_bilibili 定义&#xff1a;简单灵活、处理大量消息的分布式系统&#xff0c;专注于实时处理异步队列&#xff0c;支持任务调度 主要架构&#xff1a; …