如何使用Graphviz绘制三个正方形,一个在另一个里面

ban*_*sal 3 linux dot graphviz

我正在使用 Linux 以点语言使用 Graphviz 工具。我想画三个正方形,一个在另一个里面。下面的代码不正确:

graph A
 { label="a";

   subgraph cluster_A
     {
        b [shape=box,label="b"];
           subgraph cluster_b
                { 
                 c[label="c",shape=box];
                }
     }

 }
Run Code Online (Sandbox Code Playgroud)

ste*_*fan 6

你有多种可能来做到这一点

  • 集群中集群中的盒子节点
  • 集群中集群中的纯文本节点
  • 带有HTML 标签和 HTML 表格的节点

成簇框:

graph "graph A"
{
    label="\G"
    subgraph "cluster A"
    {
        subgraph "cluster B"
        {
            c[shape=box];
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

集群中的明文:

graph "graph A"
{
    label="\G"
    subgraph "cluster A"
    {
        subgraph "cluster B"
        {
            subgraph "cluster C"
            {
                d[shape=none];
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

两种变体都将标签设置为它们的名称,这是节点的默认值,但不是图(以及所有包含的子图)的默认值。由于图形标签是继承的,您可以手动设置所有标签,也可以像我一样使用名称 palceholder。

用于类似标签的 HTML

graph "graph A"
{
    label="\G"
    a [shape=none label=<<table><tr><td><table><tr><td><table><tr><td>node a</td></tr></table></td></tr></table></td></tr></table>>];
}
Run Code Online (Sandbox Code Playgroud)

你有更多的格式自由(边距,填充,边框,...)

在此处输入图片说明