一个节点中的两种颜色与graphviz的点?

时间:2012-01-26 20:56:41

标签: graphviz dot

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

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

非常感谢, 詹姆斯

3 个答案:

答案 0 :(得分:11)

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"]
}

enter image description here

答案 1 :(得分:3)

我认为没有开箱即用的解决方案可以拥有2种背景颜色。

最好的解决方案是使用 gradient 填充(fillcolor="orange:yellow") - 但是虽然这是在文档中,但我无法使其工作框。

您可以使用 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>
>]

2 colors

答案 2 :(得分:1)

如果您使用标签的image属性并提供合适的背景图片,则可以使用

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

这给出了以下输出:

enter image description here

使用range.png文件

enter image description here