web-dev-qa-db-fra.com

Graphviz: changer la police pour tout le graphique?

Je me demande si je peux définir une police alternative pour tout le graphique.

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

Selon cette 1 publication plus ancienne, l'attribut fontname ne peut être défini que séparément:

Les nœuds et les bords n'héritent pas de la police du graphique, vous devez les spécifier séparément

Y a-t-il une autre manière, comment définir la police globalement?

60
pirkil

Non, il n'y a pas d'autre moyen.

Comme dans le post du forum que vous avez lié, vous devez définir les valeurs par défaut séparément (comme les autres attributs) au début de votre fichier graphviz:

digraph g {
 graph [fontname = "helvetica"];
 node [fontname = "helvetica"];
 Edge [fontname = "helvetica"];
 ...
}
88
marapet

Je ne sais pas s'il s'agit d'une mise à jour récente, mais vous pouvez les modifier au niveau de la ligne de commande à l'aide de -G, -E et -N drapeaux d'attribut. Autrement dit, les travaux suivants pour moi:

$ dot -Tpng -Nfontname=Roboto -Nfontsize=10 \
    -Efontname=Roboto -Efontsize=10 \
    tree.dot > tree.png
11
JJ Geewax

Cependant, il existe une astuce simple, si vous exportez des svgs:

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

combinez cela avec Make et toute l'horreur sera cachée :) voici un exemple 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
0
deddu