【问题标题】:How does one define double-lines for edge and node shapes in graphviz dot?如何在 graphviz dot 中定义边缘和节点形状的双线?
【发布时间】:2011-09-07 09:01:06
【问题描述】:

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

【问题讨论】:

    标签: diagram graphviz dot entity-relationship


    【解决方案1】:

    在节点上使用[peripheries=2]可以完成双重形状

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

    我终于到了!对不起这个答案的“进化”性质:-)

    例如

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

    【讨论】:

    • 将颜色white 与非白色背景或对象一起使用可能会导致问题。请参阅my answer 以获得更好的解决方案。
    【解决方案2】:

    accepted answer 正确地将peripheries 属性用于多个节点轮廓。

    但是,使用颜色white 在节点之间绘制宽分开的双边线并不理想。如果这样的边缘绘制在非白色背景上或穿过非白色对象,则会出现一条白线。最好使用noneinvis 中的一种颜色。从接受的答案更新部分示例:

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

    请参阅Graphviz color documentation 了解更多信息。

    【讨论】:

      【解决方案3】:

      (查看其他关于正常边和节点的答案)

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

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

      结果如下:

      我尝试在外面用invis 层包裹它。由于增加了边缘宽度,与普通箭头相比看起来有点奇怪,但至少读者可以理解:

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

      但这不适用于前向边缘。

      【讨论】:

        猜你喜欢
        • 2020-02-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-06-07
        • 1970-01-01
        • 1970-01-01
        • 2012-09-05
        相关资源
        最近更新 更多