graph graphname {
a -- b;
b -- c;
b -- d;
d -- a;
};
生成jpg格式图片的Makefile如下:
demo.jpg:demo.dot
dot -Tjpg demo.dot -o demo.jpg
clean:
rm demo.jpg
当然也可以生成其它格式的图片。最终生成的jpg图片如下:
再来看一个例子:
graph graphname {
rankdir=LR; //Rank Direction Left to Right
a -- b;
b -- c;
b -- d;
d -- a;
};
同样的图片,只是布局不一样,效果如下:
有向图:
digraph graphname {
a -> b;
b -> c;
a -> c;
};
效果如下:
从上面几个例子可以看出,无向图使用关键字"graph"来定义,而有向图使用关键字"digraph"来定义。无向图的边使用"--"来定义,而有向图的边使用"->"来定义。
再来看一个图带上label的例子:
digraph graphname {
T [label="Teacher"] // node T
P [label="Pupil"] // node P
T->P [label="Instructions", fontcolor=darkgreen] // edge T->P
};
效果如下:
由上面例子可以看出,label可用来定义顶点和边的名字。
注:分号';'和逗号','不是必须的,只是为了增强可读性,可以用空格来代替(2015.07.30 add)。
再来看其它属性的例子:
digraph graphname {
T [label="Teacher", color=Blue, fontcolor=Red, fontsize=24, shape=box] // node T
P [label="Pupil", color=Blue, fontcolor=Red, fontsize=24, shape=box] // node P
T->P [label="Instructions", fontcolor=darkgreen] // edge T->P
};
效果如下:
最后一个例子:
digraph summary {
start [label="Start with a Node"]
next [label="Choose your shape", shape=box]
warning [label="Don't go overboard", color=Blue, fontcolor=Red, fontsize=24, style=filled, fillcolor=green, shape=octagon]
end [label="Draw your graph!", shape=box, style=filled, fillcolor=yellow]
start->next
start->warning
next->end [label="Getting Better...", fontcolor=darkblue]
};
注darkblue这个值编译时会提示一个Warning,提示没有这个color,而最终生成的图也的确没有起作用,默认使用了黑色这个值,效果如下:
参考教程:
http://www.tonyballantyne.com/graphs.html
http://www.graphviz.org/pdf/dotguide.pdf