【问题标题】:What are the restrictions of node ID in GraphViz?GraphViz 中节点 ID 的限制是什么?
【发布时间】:2022-01-27 17:15:49
【问题描述】:

例如,如果我将 ID 1a2.2.2 用于节点,则结果如下:

这是如何工作的?节点名称还有哪些其他限制?我看了Attributes | Graphviz,但没有解释。

我可以这样做吗?

0 -> {1a, 1b, 2, 3} 
1b -> 2
1b.1 -> {1b.1.1}
1b.1.1 -> {1b.1.1.1, 1b.1.1.3}
1b.2 -> {1b.2.1, 1b.2.2}
1b.2.2 -> {1b.2.2.1, 1b.2.2.2}
2 -> 2.1
3

【问题讨论】:

    标签: graphviz


    【解决方案1】:

    根据DOT language documentation,您应该使用引号作为节点ID:

    ID 是以下之一:

    • 任何字母 ([a-zA-Z\200-\377]) 字符串,下划线 ('_') 或数字([0-9]),不以数字开头;
    • 一个数字 [-]?(.[0-9]⁺ | [0-9]⁺(.[0-9]*)?);
    • 任何双引号字符串 ("...") 可能包含转义引号 (")¹;
    • 一个 HTML 字符串 (<...>)。

    ID 只是一个字符串;前两个中缺少引号字符 表格只是为了简单。之间没有语义上的区别 abc_2 和“abc_2”,或介于 2.34 和“2.34”之间。

    因此,对于您的示例,它将按如下方式工作:

    digraph example {
      "0" -> {"1a", "1b", "2", "3"} 
      "1b" -> "2"
      "1b.1" -> {"1b.1.1"}
      "1b.1.1" -> {"1b.1.1.1", "1b.1.1.3"}
      "1b.2" -> {"1b.2.1", "1b.2.2"}
      "1b.2.2" -> {"1b.2.2.1", "1b.2.2.2"}
      "2" -> "2.1"
      "3"
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-06
      • 1970-01-01
      • 2021-07-28
      • 2019-08-29
      • 2014-10-09
      相关资源
      最近更新 更多