Graphviz: Schriftart für das gesamte Diagramm ändern?


74

Ich frage mich, ob ich eine alternative Schriftart für das gesamte Diagramm definieren kann.

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

Nach diesem 1 älteren Beitrag kann der Schriftname atribute nur separat definiert werden:

Knoten und Kanten erben nicht die Schriftart des Diagramms, Sie müssen sie separat angeben

Gibt es eine andere Möglichkeit, die Schriftart global zu definieren?

Antworten:


106

Nein, es gibt keinen anderen Weg.

Wie in dem von Ihnen verlinkten Forumsbeitrag müssen Sie die Standardwerte (wie die anderen Attribute) am Anfang Ihrer graphviz-Datei separat definieren:

digraph g {
 graph [fontname = "helvetica"];
 node [fontname = "helvetica"];
 edge [fontname = "helvetica"];
 ...
}

19

Nicht sicher , ob dies ein neues Update ist, aber Sie können diese auf der Befehlszeilenebene mit der Änderung -G, -Eund -NAttributflag. Das heißt, das Folgende funktioniert für mich:

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

1

Es gibt jedoch einen einfachen Trick, wenn Sie SVGs exportieren:

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

Kombiniere dies mit Make und all der Horror wird verborgen sein :) Hier ist ein Beispiel für ein Makefile:

all: helvetica

svg:
    cat thegraph.dot | dot -Tsvg > thegraph.svg
helvetica: svg
    sed 's/Times,serif/Helvetica/g' thegraph.svg > thegraph_helvetica.svg

13
Aber dies wird die Dinge nicht basierend auf der Größe des gerenderten Textes darstellen
Eric
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.