如何在graphviz点中为边和节点形状定义双线?

时间:2011-06-02 20:22:48

标签: diagram graphviz dot entity-relationship

如何使用带有双线的graphviz dot来设置边和节点的样式,如下图中“LEGAL”和“TAX DISC”节点所示?

ER Diagram

3 个答案:

答案 0 :(得分:39)

可以使用节点上的[peripheries=2]

来完成双重形状

可以通过为边指定多种颜色来完成加倍边,用冒号分隔。在这种情况下,请使用相同的颜色两次:[color="black:black"](或者,稍微将它们分开,执行[color="black:invis:black"]

我最终到了那里!对于这个答案的“进化”性质感到抱歉: - )

所以例如

graph G {
    Foo [peripheries=2]
    Foo -- Bar [color="black:white:black"]
}

答案 1 :(得分:12)

对于多个节点大纲使用peripheries属性,accepted answer是正确的。

但是,使用颜色white在节点之间绘制广泛分离的双边边缘并不理想。如果在非白色背景上绘制这样的边缘或穿过非白色物体,则可以看到白线。最好使用其中一种颜色noneinvis。要从接受的答案中更新部分示例:

graph G {
    Foo [peripheries = 2]
    Foo -- Bar [color = "black:invis:black"]
}

有关详细信息,请参阅Graphviz color documentation

答案 2 :(得分:0)

(请参阅有关正常边缘和节点的其他答案)

三色解决方案不适用于dir="back"的有向边。

digraph A {
    foo -> bar [dir = "back", color = "black:invis:black"];
}

结果如下:

enter image description here

我尝试用外面的invis层包装它。由于增加了边缘宽度,因此与普通箭头相比显得有些古怪,但至少读者可以理解:

digraph A {
    foo -> bar [dir = "back", color = "invis:black:invis:black:invis"];
}

enter image description here

但是,这不适用于前边缘。