我的图表看起来像是:
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"]
}
}
但这不是我想要的。我想使用这种特定的内联符号。
答案 0 :(得分:2)
你要求的是不可能的 - 不幸的是,没有其他答案。
如果您查看grammar of the dot language:
graph : [ strict ] (graph | digraph) [ ID ] '{' stmt_list '}'
stmt_list : [ stmt [ ';' ] stmt_list ]
stmt : node_stmt
| edge_stmt
| attr_stmt
| ID '=' ID
| subgraph
attr_stmt : (graph | node | edge) attr_list
attr_list : '[' [ a_list ] ']' [ attr_list ]
a_list : ID '=' ID [ (';' | ',') ] [ a_list ]
edge_stmt : (node_id | subgraph) edgeRHS [ attr_list ]
edgeRHS : edgeop (node_id | subgraph) [ edgeRHS ]
node_stmt : node_id [ attr_list ]
node_id : ID [ port ]
port : ':' ID [ ':' compass_pt ]
| ':' compass_pt
subgraph : [ subgraph [ ID ] ] '{' stmt_list '}'
compass_pt : (n | ne | e | se | s | sw | w | nw | c | _)
edge_stmt 的组成不包含节点属性。允许节点属性的唯一语句是 node_stmt 。
答案 1 :(得分:0)
如上所述,点语言语法不支持此功能。可以使用子图来完成解决方法:
digraph G {
subgraph { nodefoo [label="foo", shape=box]; } ->
subgraph { nodebar [label="bar", shape=circle]; }
[label="qux"];
}