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

时间:2015-04-28 09:02:10

标签: linux graphviz dot

我使用Linux使用dot语言的Graphviz工具。我想绘制三个正方形,一个在另一个内。以下代码不正确:

graph A
 { label="a";

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

 }

1 个答案:

答案 0 :(得分:1)

你有多种可能做到这一点

  • 群集中的群集节点
  • 群集中群集中的明文节点
  • 包含HTML like label和HTML表格
  • 的节点
群集中的

框:

graph "graph A"
{
    label="\G"
    subgraph "cluster A"
    {
        subgraph "cluster B"
        {
            c[shape=box];
        }
    }
}

enter image description here

群集中的明文:

graph "graph A"
{
    label="\G"
    subgraph "cluster A"
    {
        subgraph "cluster B"
        {
            subgraph "cluster C"
            {
                d[shape=none];
            }
        }
    }
}

enter image description here

两个变体都将标签设置为其名称,这是节点的默认值,但不适用于图形(以及所有包含的子图)。由于图形标签是继承的,您可以手动设置所有标签,也可以像我一样使用名称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>>];
}

你在格式化方面有更多自由(边距,填充,边框......)

enter image description here