Два цвета в одном узле с точкой графвиза? - PullRequest
6 голосов
/ 27 января 2012

Мне интересно, возможно ли разделить узел на два разных цвета. Я использую точку графвиза (http://www.graphviz.org/).

Возможно, вертикальная линия или диагональная линия могут разделить узел на два цвета. Я хочу сделать это, потому что у меня есть много узлов, которые принадлежат двум разным категориям (цветам) с некоторыми узлами, принадлежащими обоим.

Большое спасибо, Джеймс

Ответы [ 3 ]

11 голосов
/ 29 января 2012

Градиентная функциональность была добавлена ​​в Graphviz только 26 января 2012 г .;пока не будет выпущена новая стабильная версия Graphviz 2.30.0, вам потребуется загрузить Graphviz версия для разработки 2.29.20120127.0545 или новее.

Кроме того, кажется, что градиенты реализованы только длярендерер Каир / Панго до сих пор;в моих тестах рендереры Quartz (Mac) и GD используют только первый цвет.В частности, это означает, что если вы работаете на Mac и используете GUI-приложение Graphviz.app, вы не увидите там градиентов (пока).

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

enter image description here

3 голосов
/ 27 января 2012

Я не думаю, что есть готовое решение, имеющее 2 цвета фона.

Лучшим решением было бы использовать градиент fills (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>
>]

2 colors

1 голос
/ 27 января 2012

Это возможно, если вы используете атрибут 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

...