如何用Graphviz绘制覆盖1940至1955时间节点的横向矩形框?
实现跨节点的覆盖矩形框方案
要绘制覆盖1940到1955节点范围的矩形框,最直接的方式是利用Graphviz的cluster子图——只要将需要覆盖的节点纳入cluster中,Graphviz会自动生成包围这些节点的矩形框。以下是修改后的完整代码:
digraph timeline { # 全局时间节点样式 node [fontsize=24, shape = plaintext]; # 定义cluster子图,自动生成包围框 subgraph cluster_0 { style=filled; color=lightgrey; label="覆盖范围"; # 可选,可删除或修改为自定义文本 1940; 1950; 1955; } # 时间线流转关系 1940 -> 1950; 1950 -> 1955; 1955 -> 1960; # 原有的1940旁矩形框 node [fontsize=20, shape = box]; { rank=same; 1940 test; } }
关键说明:
- 子图命名必须以
cluster_开头,Graphviz才会识别并生成包围框 - 通过
style和color属性可以自定义框的外观,比如去掉filled只保留边框,或者修改颜色 - 将1940、1950、1955纳入cluster后,框会自动覆盖这三个节点的横向范围,正好满足从1940起始到1955结束的需求
- 原有时间线和独立矩形框的逻辑完全保留,不影响原有布局
内容的提问来源于stack exchange,提问作者user254694
相关产品推荐
相关产品推荐

