graphviz,将标签写到点的外面
在离散数学中,表示有向图的时候是用一个点来表示图中的节点的,这样的话,要画出这样的点,就要在dot语句中将节点(node)的形状(shape)设为“point”,就是:
node [ shape = point ]
这样的话,画出来的图中,节点就是一个点了。但是这样的话,画出来的节点的标签(label)实际上就不起作用了,因为标签是会在节点所占据区域的内部的,由于节点现在没有面积了,只是一个点,所以节点的标签显示不出来了,看下面的代码画出来的图:
digraph ADirectedGraph
{
node [ shape = point ]
a -> b ;
a -> d ;
b -> b ;
b -> d ;
c -> a ;
c -> b ;
d -> b ;
}
最后呢,还是找到解决方法了,一个专家说,无法通过直接设置节点的各种属性的方法来解决这个问题,而要用另外一个方法来绕过去,方法就是画一个透明的指向自己的边,并且在边上加标签,这样就能看到节点旁边有一个标签了,从视觉上来看就可以认为这个标签是表示该节点的了。 看下面的代码:
digraph ADirectedGraph
{
node [ shape = point ]
a -> b ;
a -> d ;
b -> b ;
b -> d ;
c -> a ;
c -> b ;
d -> b ;
//做一些标签来表示点:
a -> a [ taillabel = "a" color = "transparent" ];
b -> b [ taillabel = "b" color = "transparent" labeldistance = "2.3" ];
c -> c [ taillabel = "c" color = "transparent" ];
d -> d [ headlabel = "d" color = "transparent" labeldistance = "0.3" ];
}
代码里面的“taillabel”“headlabel”“labeldistance”是用来调节标签的位置的,具体地可以看相关的文档。 参考这里的一个帖子:https://mailman.research.att.com/pipermail/graphviz-interest/2004q4/001774.html
啊啊,还是那句话,为什么就没能找到关于这个问题的中文的说明呢?
未知美人
Your opinionsHxLauncher: Launch Android applications by voice commands