我想知道是否可以将节点分成两种不同的颜色。我正在使用graphviz的dot(http://www.graphviz.org/)。也许一条竖线或者对角线可以将节点分成两种颜色。我想这样做是因为我有很多节点属于两个不同的类别(颜色),而有些节点属于两个类别(颜色)都有。谢谢。James
渐变功能是在2012年1月26日才被添加到Graphviz中的;在新的2.30.0稳定版本发布之前,您需要下载Graphviz 2.29.20120127.0545或更新的开发版本。
此外,目前似乎只有Cairo/Pango渲染器实现了渐变;在我的测试中,Quartz(Mac)和GD渲染器会回退到使用第一个颜色。特别是,这意味着如果您正在Mac上使用Graphviz.app GUI查看器,则不会看到渐变效果(但还未支持)。
digraph G {
Gradient [style="filled", fillcolor="orange:yellow"]
}
我认为没有一个现成的解决方案可以有两种背景颜色。
最好的解决方案是使用渐变填充(fillcolor="orange:yellow"
) - 但尽管这在文档中有说明,但我无法在我的盒子上使其工作。
您可以使用类似HTML标签作为解决方法。根据您的需求,您可能需要拆分标签以使其居中:
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>
>]
如果您使用标签的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
文件