2012-01-26 19 views
6

Zastanawiam się, czy możliwe jest podzielenie węzła na dwa różne kolory. Używam kropki graphviz (http://www.graphviz.org/).Dwa kolory w jednym węźle z kropką graphviz?

Być może pionek lub ukośna linia może podzielić węzeł na dwa kolory. Chcę to zrobić, ponieważ mam wiele węzłów, które należą do dwóch różnych kategorii (kolorów) z niektórymi węzłami należącymi do obu.

Dziękujemy, James

Odpowiedz

9

Gradient functionality dodano tylko Graphviz w dniu 26 stycznia 2012 roku; do czasu wydania nowej stabilnej wersji Graphviz 2.30.0, musisz download Graphviz wersja rozwojowa 2.29.20120127.0545 lub nowsza.

Ponadto, gradienty wydają się być realizowane tylko dla renderera Cairo/Pango; w moich testach, rendery Quartz (Mac) i GD powracają do używania tylko pierwszego koloru. W szczególności oznacza to, że jeśli korzystasz z komputera Mac i korzystasz z przeglądarki graficznej Graphviz.app, nie zobaczysz tam jeszcze gradientów (jeszcze).

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

enter image description here

+0

Dzięki (trochę za późno!). Teraz mam zaktualizowany mój Graphviz, będę musiał spojrzeć na to :) – James

3

nie sądzę jest out-of-the-box rozwiązanie mieć 2 kolory tła.

Najlepszym rozwiązaniem byłoby wykorzystanie gradient wypełnień (fillcolor="orange:yellow") - ale mimo to jest w dokumentacji, nie byłem w stanie zrobić to działa na moim polu.

Można użyć HTML-like labels jako obejścia. Być może trzeba podzielić etykietę, aby mieć to skoncentrowane, w zależności od potrzeb:

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

+0

Dzięki za szybką odpowiedź. Gradient brzmi idealnie, chociaż tak jak ty, nie mogłem go również uruchomić. Etykieta HTML działa dobrze, dziękuję. Po prostu poczekam, czy ktoś wie, czy gradient działa poprawnie, czy nie. – James

+0

@James Oto przykład: http://www.graphviz.org/Gallery/gradient/angles.html – ivanm

0

Jest to możliwe, jeśli użyć atrybutu etykiety image i zapewniają odpowiedni obraz tła:

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

To daje następujący wynik:

enter image description here

pomocą pliku

range.pngenter image description here

Powiązane problemy