Graphviz:更改整个图形的字体?


76

我想知道是否可以为整个图形定义替代字体。

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

根据这1个较早的帖子,只能单独定义字体名称atribute:

节点和边不会继承图的字体,您需要单独指定它们

还有其他方法,如何全局定义字体?

Answers:


108

不,没有其他办法。

就像您链接的论坛帖子一样,您必须在graphviz文件的开头分别定义默认值(如其他属性):

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

19

不知道这是一个新的更新,但是你可以使用在命令行级别改变这些-G-E-N属性的标志。也就是说,以下对我有用:

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

1

但是,如果要导出svg,则有一个简单的技巧:

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

与Make结合使用,所有的恐怖都会被隐藏:)这是一个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
但是,这将不会下蛋的事情了基于所再现的文本的大小
埃里克
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.