graphviz:颜色方面的边缘方向

Pun*_*eet 5 graph colors graphviz edges


我可以通过graphviz以识别方向的方式为边缘着色吗?例如,靠近其源节点的边缘部分可能是蓝色,然后当它接近目标节点时逐渐变为红色.或者是否有其他图形工具(如graphviz)可以做到这一点?

在这方面的任何帮助将不胜感激.

dou*_*oug 9

好吧,我对你当前的点文件一无所知,所以我不得不做一些假设.为了首先处理简单的情况,区分边缘的方向是箭头(指向)和箭头(指向)的工作.如果您的图表类型是有图,您设置在点文件的顶部,例如,您的图表将仅用于渲染图表.

digraph G {
    node[style=filled, color=cornflowerblue, fontcolor=white, fontsize=10, 
          fontname='Helvetica']
    edge[arrowhead=vee, arrowtail=inv, arrowsize=.7, color=maroon, fontsize=10,
          fontcolor=navy]

    a1 -> a2;
    a2 -> a4 [taillabel="TL     "];
    a2 -> a5 [headlabel="       HL"];
    a4 -> a6 [label="  ordinary edge label"]
}
Run Code Online (Sandbox Code Playgroud)

如果您已经创建了有向图,但由于某种原因您需要一个额外的指示器来显示边缘方向,那么我能想到的唯一相关边缘属性是headlabeltaillabel属性,它允许您指定边缘的哪一端放置一个标签.上面的小点文件将呈现此图:

替代文字


Ale*_*nov 5

从2012年和2.30.0开始,Graphviz支持多种边缘颜色:color="blue;0.5:red"应该使一半更接近源蓝色,一半更接近目标红色。更确切地说

如果 colorList 没有分数,则使用平行样条线或直线绘制边缘,按照给定的顺序对应列表中的每种颜色。

头部箭头(如果有)使用列表中的第一种颜色绘制,尾部箭头(如果有)使用第二种颜色绘制。这支持绘制相对边的常见情况,但使用平行样条线而不是单独布线的多重边。

如果使用任何分数,则按顺序绘制颜色,每种颜色大致给出其指定的边缘分数。