Graphviz:如何设置'默认'箭头样式?

问题描述:

考虑此dot语言代码:Graphviz:如何设置'默认'箭头样式?

digraph graphname { 
    subgraph clusterA { 
     node [shape=plaintext,style=filled]; 
     1 -> 2 [arrowhead=normal,arrowtail=dot]; 
     2 -> 3 -> X2 -> 5; 
     6; 
     7; 
     label = "A"; 
     color=blue 
    } 
} 

在上面的例子中,仅1 -> 2连接将具有所施加的arrowhead=normal,arrowtail=dot风格;所有其他箭头将是“默认”风格。

我的问题是 - 如何设置箭头样式(对于整个子图或整个图),而不必在每个边连接旁边复制粘贴“[arrowhead=normal,arrowtail=dot];”?

编辑:仅供参考 - answer from Jesse不包含任何代码;我写了这段代码,并将它放在这里 - 由于不明原因,主持人将它从这里删除并粘贴到Jesse的答案中。

使用边缘属性声明,如DOT Language documentation中所述。

digraph graphname { 
    subgraph clusterA { 
     node [shape=plaintext,style=filled]; 
     edge [arrowhead=normal,arrowtail=dot]; 
     1 -> 2 ; 
     2 -> 3 -> X2 -> 5; 
     6; 
     7; 
     label = "A"; 
     color=blue 
    } 
} 
+1

真棒 - 感谢您的答案,@JesseW - 接受参考:) btw,我刚刚发现[doxygen - 如何更改graphviz的默认字体大小? [Stack Overflow](http://*.com/questions/1938200/how-to-change-default-font-size-for-graphviz)这也是,几乎解释相同:) – sdaau 2010-12-22 23:05:39

+0

只是一个说明:你也可以通过添加命令行参数(例如`-Earrowtail = dot`)在命令行上执行此操作(即,不修改DOT文件)。更一般地,`-E`用于设置默认的* edge *属性,`-N`用于设置默认的* node *属性,`-G`用于设置默认的* graph *属性。 – Rod 2013-12-12 06:22:19

就像你一样的节点,但使用edge,例如edge[style=dashed]