用graphviz画机房拓扑的几个关键词

系统 1636 0
用graphviz画机房拓扑的几个关键词

我准备用graphviz画机房的拓扑图。用excel或txt记录机器和VLAN什么的信息,用antlr写个工具解析,然后生成dot文件,最后用graphviz把dot画出来。

想到有这么几个基本技术,今天试了一下。下面的这段代码就是例子。行号是我加的,为了说明方便。执行结果如图所示。


用graphviz画机房拓扑的几个关键词


建一同学提到用graphviz画UML,请参考 plantuml。不知道为什么被墙了。

  
    1 // dot -Tpng test.dot -o test.png; eog test.png
2 digraph a
3 {
4 	node1 [label="NODE1", shape=none, image="pc.png", labelloc=b]; // color=white, 
5 	node2 [shape=box3d];
6 	node3;
7 	node4;
8 
9 //	edge [weight=100, arrowhead=none];
10 	node1 -> node2 [taillabel="tail", headlabel="head", labeldistance=3, labelangle=-45 ,label="label", sametail="a"];
11 //	edge [weight=0.5, arrowhead=none];
12 	node1 -> node3:se [sametail="a", weight=100];
13 	node3 -> node4;
14 	
15 	{rank = same; node2; node4; };
16 	
17 	
18 }

  


1. 定制节点

默认的节点是矩形圆形多边形这样规则的形状。可以使用图片,人类看起来漂亮一些。

参见第4行,image="pc.png"。

2. 线连接的位置

有些节点要连出去很多线,线连接的位置如果散开,有时候比较难看。sametail可以让它们都聚在一起,参见第10和第11行。

也许,有时候想从特别的角度连到节点上,可以指定方向,参见第12行node3:se,表示从东南方向连接。

3. 题注的位置

用了定制的图片以后,题注标在节点正中就有些不合习惯,可以用labelloc指定位置。参见第4行,lableloc=b,b表示底部。

线的题注 (这东西叫题注么?) 除了label本身以外,可以用taillabel,headlabel,分别标在箭尾或箭头。标在箭尾或箭头的题注,可以用labeldistance=3, labelangle=-45进一步修订,参见第10行。

4. 节点的位置

某个节点,如果希望它跟别的节点平级,用rank,参见第15行。rank不仅能same,还可以起名字。这一技术还可以用于水平的图,让时间与事件对齐。

还可以用node的属性pos指定节点位置。实验表明,1.需要给出所有的node的位置,2.要使用neato引擎,不能用dot本身。而且,我在实验中发现,想指定一个合理美观的节点位置实在太难了。如果想强调某个结点的核心位置,请参见下一条。

5. 连线的位置

如果想强调某根线,用weight。weight越大,线越直,线连接的节点间距离越近。参见第9、11、12行。

weight是edge的属性,因此既可以加在某条线的后的"[]"里,也可以如第9行的写法,从此向下的edge都具有这样的属性。


更多细节,请参考[http://www.graphviz.org/doc/info/attrs.html]。

--------------------

博客会手工同步到以下地址:

[http://giftdotyoung.blogspot.com]

[http://blog.csdn.net/younggift]

用graphviz画机房拓扑的几个关键词


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论