`
v5browser
  • 浏览: 1137206 次
社区版块
存档分类
最新评论

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

 
阅读更多
用graphviz画机房拓扑的几个关键词

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

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




建一同学提到用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画的数据流图

    使用graphviz画出的数据流图,给各位做一个参考。

    rabbitmq-graphviz:使用graphviz显示RabbitMQ拓扑的脚本

    使用 graphviz 显示 RabbitMQ 拓扑的脚本,深受启发。 生成样本(目前只有一个): $ make samples 跑步: $ python rabbitmq_graphviz.py -d [DEFINITIONS_FILE] -o [DOT_FILE] 使用-p和-c标志分别呈现生产者...

    利用graphviz画函数关系图

    要使用该方法,要先安装gcc,python2.7,绝对可行,选择某一源文件,即可调用。源码内设路径可自行调整。

    决策树绘制graphviz

    改名zip,直接解压,添加路径到变量即可。无需安装。我电脑msi装不上,所以才想到的这个办法。

    graphvizuml:使用 Graphviz 绘画 UML 图

    利用 Graphviz 去生成 UML 类图有几个好处:用文本表示图,容易更新,容易做版本管理。能自动排布节点位置,在大型复杂的图特别方便。统一文档风格。实际上,文档生成工具 也是采用 Graphviz 生成类图的。不过,我们...

    graphviz 2.28

    生成拓扑图的利器! 相关代码: http://blog.csdn.net/yenange/article/details/7940043

    Graphviz2.38+Graphviz中文指南

    Graphviz2.38+Graphviz中文指南

    Graphviz中文指南.pdf

    Graphviz中文指南.pdf,Graphviz中文指南.pdf,Graphviz中文指南.pdf

    GraphViz使用

    GraphViz使用 1 1 graphViz 1 1.1 无向图 1 1.2 带标签加权无向图 1 1.3 有向图 2 1.3.1 画图引擎 2 1.4 标注路径 3 1.5 子图 3 1.6 大型图形:rank=same对齐 4 1.7 UML元素 5 1.7.1 node[..],edge[..]设置节点、连线...

    正则表达式到dfa(graphviz输出图像)

    python3.7实现正则表达式到dfa的转变,提供控制台输出文件,graphviz图像输出文件,graphviz图像输出需自行配置相关环境

    解决Cannot find Graphviz

    解决Cannot find Graphviz.zip

    graphviz.msi graphviz Windows安装包

    graphviz.msi graphviz Windows安装包,找了好久,留一个备份

    Graphviz使用指南

    Graphviz中文使用指南

    解决IDEA【Cannot find Graphviz】问题 graphviz-2.38.zip

    解决IDEA【Cannot find Graphviz】问题 graphviz-2.38.zip 官网上的graphviz下载太慢,太慢,太慢。

    graphviz-2.38与PlantUML结合使用

    PlantUML一定要用到Graphviz。PlantUML使用Graphviz来生成相关图形(只有序列图可以不依赖它),其它图形都需要,因此得安装它,否则生成图形失败,且报错。

    graphviz-2.38.zip

    graphviz提供命令式的绘图方式,它提供一个dot语言用来编写绘图脚本,然后对这个脚本进行解析,分析出其中的定点,边以及子图,然后根据属性进行绘制;由于graphviz是通过dot语言来进行绘制,所以不管绘制多么麻烦的...

    Graphviz一个图形库

    Graphviz:一个图形库

    graphviz官方工具gvedit

    配合graphviz使用的可视化编写工具,graphviz官方工具,拷贝到graphviz的安装目录下的bin目里即可使用。

    Graphviz中文教程指南

    graphviz是贝尔实验室开发的一个开源的工具包,它使用一个特定的DSL(领域特定语言):dot作为脚本语言,然后使用布局引擎来解析此脚本,并完成自动布局。此文档为Graphviz中文教程,转载请注明出处,仅供个人学习交流...

    Graphviz安装包

    Graphviz安装包

Global site tag (gtag.js) - Google Analytics