Graphviz: cambiar la fuente para todo el gráfico?


Me pregunto si puedo definir una fuente alternativa para todo el gráfico.

...
digraph script_concept {
graph [layout="dot",fontname="helvetica"];
...

De acuerdo con esto 1 el atributo fontname solo se puede definir por separado:

Los nodos y bordes no heredan la fuente del gráfico, debe especificar por separado

¿Hay alguna otra manera, cómo definir la fuente globalmente?

 52
Author: pirkil, 2012-06-04

3 answers

No, no hay otra manera.

Al igual que en la publicación del foro que vinculó, debe definir los valores predeterminados por separado (como los otros atributos) al principio de su archivo graphviz:

digraph g {
 graph [fontname = "helvetica"];
 node [fontname = "helvetica"];
 edge [fontname = "helvetica"];
 ...
}
 75
Author: marapet,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-06-04 11:36:31

No está seguro de si se trata de una actualización reciente, pero puede cambiarlas en el nivel de línea de comandos utilizando el -G, -E y -N banderas de atributos. Es decir, las siguientes obras para mí:

$ dot -Tpng -Nfontname=Roboto -Nfontsize=10 \
    -Efontname=Roboto -Efontsize=10 \
    tree.dot > tree.png
 7
Author: JJ Geewax,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-03-23 10:47:16

Sin embargo, hay un truco fácil, si está exportando svgs:

sed 's/Times,serif/Helvetica/g' thegraph.svg > thegraph_helvetica.svg

Combine esto con Make y todo el horror estará oculto :) aquí hay un ejemplo de Makefile:

all: helvetica

svg:
    cat thegraph.dot | dot -Tsvg > thegraph.svg
helvetica: svg
    sed 's/Times,serif/Helvetica/g' thegraph.svg > thegraph_helvetica.svg
 1
Author: deddu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-05-28 14:28:18