【发布时间】:2012-01-30 01:01:00
【问题描述】:
我想知道是否可以将一个节点分成两种不同的颜色。 我正在使用graphviz的点(http://www.graphviz.org/)。
也许垂直线或对角线可以将节点分成两种颜色。我想这样做是因为我有许多节点属于两个不同的类别(颜色),其中一些节点属于两者。
非常感谢, 詹姆斯
【问题讨论】:
我想知道是否可以将一个节点分成两种不同的颜色。 我正在使用graphviz的点(http://www.graphviz.org/)。
也许垂直线或对角线可以将节点分成两种颜色。我想这样做是因为我有许多节点属于两个不同的类别(颜色),其中一些节点属于两者。
非常感谢, 詹姆斯
【问题讨论】:
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"]
}
【讨论】:
我不认为有一种开箱即用的解决方案来拥有 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>
>]
【讨论】:
如果您使用标签的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 文件
【讨论】: