概述
经常需要梳理某些技术的发展历史和事件。如果能够根据时间序列化图示,效果很直观。Graphviz可以使用{rank=same}的节点控制方式,就能横纵
模板
digraph timeline {
#size = "7,8";
#node [shape=box, style=filled fillcolor=lightgray];
node [shape=box]
# mrn: 没人理
# s1: master,先画主干
1991 ->
1996 ->
2022
## 最后一个节点不能添加->
# s2: rank,再画横向链接节点 rank=same表示同一行
{rank=same; 1991 -> ev_linux1dot0}
# s3: node, 再画节点 (name + label)
ev_linux1dot0 [label="linux 1.0"];
}
技巧说明
- 以后快速回忆主要流程:mrn:(没惹你),像画画一样先主干,再rank等级排序,再具体例子
- node需要用box,不能record
- 主线最后一个节点不能添加->
- rank=same同一行用;分割,然后节点一次放在一起 并且可以链接
- rank=same中节点直接连接用->
- node步骤直接添加label填写,技巧node可以添加前缀,类似变量
效果
举例:
digraph timeline {
#size = "7,8";
node [shape=box, style=filled fillcolor=lightgray];
# node [shape=box]
# s1: master,先画主干
1991 ->
1996 ->
2011 ->
2015 ->
2019 ->
2022 ## 最后一个节点不能添加->
node [shape=box, style=filled fillcolor=green];
# s2: rank,再画横向链接节点 rank=same表示同一行
{rank=same; 1991 -> ev_linux1dot0}
{rank=same; 1996 -> ev_linux2dot0}
{rank=same; 2011 -> ev_linux3dot0}
{rank=same; 2015 -> ev_linux4dot0}
{rank=same; 2019 -> ev_linux5dot0}
{rank=same; 2022 -> ev_linux6dot0}
# s3: node, 再画节点 (name + label)
ev_linux1dot0 [label="linux 1.0"];
ev_linux2dot0 [label="linux 2.0"];
ev_linux3dot0 [label="linux 3.0"];
ev_linux4dot0 [label="linux 4.0"];
ev_linux5dot0 [label="linux 5.0"];
ev_linux6dot0 [label="linux 6.0"];
}
效果:
后记
很多技术历史都可以用这个来画图,比如linux历史,pcie历史,硬件设备历史,产品发布历史,后期快速copy使用没人理方法。