2012-01-26 16 views
6

Me pregunto si es posible dividir un nodo en dos colores diferentes. Estoy usando el punto de graphviz (http://www.graphviz.org/).Dos colores en un nodo con el punto de graphviz?

Quizás un vértice o línea diagonal podría dividir el nodo en dos colores. Quiero hacer esto porque tengo muchos nodos que pertenecen a dos categorías diferentes (colores) con algunos nodos que pertenecen a ambos.

Muchas gracias, James

Respuesta

9

Gradient functionality solamente se añadió a Graphviz el 26 de enero de 2012; hasta que se publique la nueva versión 2.30.0 estable de Graphviz, necesitará download Graphviz versión de desarrollo 2.29.20120127.0545 o más reciente.

Además, los degradados solo parecen implementarse para el renderizador Cairo/Pango hasta el momento; en mis pruebas, los renderizadores Quartz (Mac) y GD vuelven a usar solo el primer color. En particular, esto significa que si está en una Mac y está usando el visor de la GUI de Graphviz.app, no verá los degradados allí (todavía).

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

enter image description here

+0

Gracias (solo un poco tarde perahps!). Ahora que he actualizado mi Graphviz voy a echar un vistazo a esto :) – James

3

No creo que hay una solución fuera de la caja a tener 2 colores de fondo.

La mejor solución sería utilizar gradient rellenos (fillcolor="orange:yellow") -, pero aunque esto es en la documentación, no fue capaz de hacer que funcione en mi caja.

Puede usar HTML-like labels como una solución. Es posible que tenga que dividir la etiqueta para que se centra, en función de sus necesidades:

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

Gracias por una respuesta rápida. El degradado suena perfecto aunque, como tú, tampoco pude hacerlo funcionar. La etiqueta HTML funciona bien, gracias. Voy a esperar para ver si alguien sabe si el degradado funciona correctamente o no. – James

+0

@James Aquí hay un ejemplo: http://www.graphviz.org/Gallery/gradient/angles.html – ivanm

0

Es posible, si se utiliza el atributo image de una etiqueta y proporciona una imagen de fondo adecuada:

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

Esto da el siguiente resultado:

enter image description here

utilizando el archivo range.png

enter image description here

Cuestiones relacionadas