Graphviz:使用内联表示法指定节点的样式

Graphviz:使用内联表示法指定节点的样式,graphviz,dot,Graphviz,Dot,我有一个图表,看起来像: digraph R { rankdir=LR "foo" -> "bar"; } 现在我希望foo的节点样式是正方形,bar是圆形。此外,在后续使用中,也应如此,例如: digraph R { rankdir=LR "foo" -> "bar" [label="qux1"]; "baz" -> "foo" [label="qux2"]; } 那么foo应该是一个正方形。有没有办法使用此内联文档来指定这一点 注意!我知道我可以写:

我有一个图表,看起来像:

digraph R {
  rankdir=LR
  "foo" -> "bar";
}
现在我希望foo的节点样式是正方形,bar是圆形。此外,在后续使用中,也应如此,例如:

digraph R {
  rankdir=LR
  "foo" -> "bar" [label="qux1"];
  "baz" -> "foo" [label="qux2"];
}
那么foo应该是一个正方形。有没有办法使用此内联文档来指定这一点

注意!我知道我可以写:

digraph G {
  { 
    node1 [shape=box, label="foo"]
    node2 [shape=circle, label="bar"]
    node1 -> node2 [label="qux"]
  }
}

但这不是我想要的。我想使用这种特定的内联表示法。

您所要求的是不可能的-不幸的是,没有其他答案

如果您查看以下内容:


边的组成不包含节点属性。允许节点属性的唯一语句是节点stmt。

您所要求的是不可能的-不幸的是,没有其他答案

如果您查看以下内容:


边的组成不包含节点属性。允许节点属性的唯一语句是节点。

如上所述,dot语言语法不支持此操作。解决方法可以通过使用子图来完成:

digraph G {
   subgraph { nodefoo [label="foo", shape=box]; } ->  
   subgraph { nodebar [label="bar", shape=circle]; } 
   [label="qux"];
}

如上所述,dot语言语法不支持这一点。解决方法可以通过使用子图来完成:

digraph G {
   subgraph { nodefoo [label="foo", shape=box]; } ->  
   subgraph { nodebar [label="bar", shape=circle]; } 
   [label="qux"];
}