【问题标题】:Two colours in one node with graphviz's dot?带有graphviz点的一个节点中有两种颜色?
【发布时间】:2012-01-30 01:01:00
【问题描述】:

我想知道是否可以将一个节点分成两种不同的颜色。 我正在使用graphviz的点(http://www.graphviz.org/)。

也许垂直线或对角线可以将节点分成两种颜色。我想这样做是因为我有许多节点属于两个不同的类别(颜色),其中一些节点属于两者。

非常感谢, 詹姆斯

【问题讨论】:

    标签: graphviz dot


    【解决方案1】:

    Gradient functionality 仅在 2012 年 1 月 26 日添加到 Graphviz;在新的 2.30.0 稳定版 Graphviz 发布之前,您需要 download Graphviz 开发版本 2.29.20120127.0545 或更高版本。

    此外,目前为止似乎只为 Cairo/Pango 渲染器实现了渐变;在我的测试中,Quartz (Mac) 和 GD 渲染器回退到只使用第一种颜色。特别是,这意味着如果您在 Mac 上使用 Graphviz.app GUI 查看器,您将看不到那里的渐变(目前)。

    digraph G {
      Gradient [style="filled", fillcolor="orange:yellow"]
    }
    

    【讨论】:

    • 谢谢(只是有点晚了!)。现在我已经更新了我的 Graphviz,我会看看这个:)
    • 不知何故对我不起作用。我在 Mac OS 上尝试了 v2.40.1,以及基于 Web 的 Graphviz 工具。
    【解决方案2】:

    我不认为有一种开箱即用的解决方案来拥有 2 种背景颜色。

    最好的解决方案是使用 gradient 填充 (fillcolor="orange:yellow") - 但尽管文档中有此内容,但我无法在我的盒子上使用它。 p>

    您可以使用 HTML-like labels 作为解决方法。您可能需要拆分标签以使其居中,具体取决于您的需要:

    a[shape="none", label=<
    <table cellpadding="0" cellborder="0" cellspacing="0" border="0">
    <tr>
    <td bgcolor="orange">abc</td>
    <td bgcolor="yellow">def</td>
    </tr>
    </table>
    >]
    

    【讨论】:

    • 感谢您的快速回复。渐变听起来很完美,虽然像你一样,我也无法让它工作。 HTML 标签效果很好,谢谢。我只是等着看是否有人知道渐变是否正常工作。
    【解决方案3】:

    如果您使用标签的image 属性并提供合适的背景图片,这是可能的:

    digraph G {
      i1 [shape=none, image="range.png", label=""];
      i2 [shape=none, image="range.png", label="Image w label", imagescale=true];
      i1 -> i2;
    }
    

    这给出了以下输出:

    使用range.png 文件

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-13
      • 1970-01-01
      • 2013-11-09
      • 1970-01-01
      • 1970-01-01
      • 2016-12-17
      相关资源
      最近更新 更多