Visualization Graphviz:左-右子图,左-右内子图

Visualization Graphviz:左-右子图,左-右内子图,visualization,graphviz,dot,subgraph,Visualization,Graphviz,Dot,Subgraph,我试图实现的是并排的集群(子图),而它们的内容也是并排的,如下图所示: 但我所能做的只是子图的上下行为,如图所示: 我知道这是一个悬而未决的问题() 但我也看到了一些解决类似问题的方法(例如) 根据解决方法,我可以得到对角线表示: 但不是你想要的 这是我的.Dot文件: digraph { node [shape=plain] rankdir=LR; subgraph cluster_Asia { label = "Asia&quo

我试图实现的是并排的集群(子图),而它们的内容也是并排的,如下图所示:

但我所能做的只是子图的上下行为,如图所示:

我知道这是一个悬而未决的问题()

但我也看到了一些解决类似问题的方法(例如)

根据解决方法,我可以得到对角线表示:

但不是你想要的

这是我的.Dot文件:

    digraph {
    node [shape=plain]
    rankdir=LR;

  subgraph cluster_Asia { 
        label = "Asia";

        China [label=<<table border="0" cellborder="1" cellspacing="0">
          <tr><td><i>China</i></td></tr>
          <tr><td bgcolor="yellow" port="Shanghai">Shanghai</td></tr>
          <tr><td bgcolor="white" port="Beijing">Beijing</td></tr>
          <tr><td bgcolor="white" port="Chongqing">Chongqing</td></tr>
          <tr><td bgcolor="white" port="Tianjin">Tianjin</td></tr>
        </table>>];
        
          India [label=<<table border="0" cellborder="1" cellspacing="0">
          <tr><td><i>India</i></td></tr>
          <tr><td bgcolor="yellow" port="NewDelhi">NewDelhi</td></tr>
          <tr><td bgcolor="white" port="Mumbai">Mumbai</td></tr>
          <tr><td bgcolor="white" port="Bangalore">Bangalore</td></tr>
          <tr><td bgcolor="white" port="Ahmadabad">Ahmadabad</td></tr>
        </table>>];

        Thailand [label=<<table border="0" cellborder="1" cellspacing="0">
          <tr><td><i>Thailand</i></td></tr>  
          <tr><td bgcolor="yellow" port="Bangkok">Bangkok</td></tr>
          <tr><td bgcolor="white" port="ChiangRai">ChiangRai</td></tr>
        </table>>];
        
        Nepal [label=<<table border="0" cellborder="1" cellspacing="0">
          <tr><td><i>Nepal</i></td></tr>
          <tr><td bgcolor="yellow" port="Kathmandu">Kathmandu</td></tr>
          <tr><td bgcolor="white" port="Birgunj">Birgunj</td></tr>
        </table>>];
          
        China:Shanghai->Thailand:Bangkok[color="blue", style=solid ]
        China:Beijing->Nepal:Kathmandu[color="blue", style=solid ]
        China:Tianjin->India:NewDelhi[color="blue",style=solid ]
        China:Chongqing->India:Ahmadabad[color="blue", style=solid ]
        India:Ahmadabad->India:Mumbai[color="blue", style=solid ]
}

  subgraph cluster_Europe {
        label = "Europe"; 

        Spain [label=<<table border="0" cellborder="1" cellspacing="0">
          <tr><td><i>Spain</i></td></tr>
          <tr><td bgcolor="yellow" port="Madrid">Madrid</td></tr>
          <tr><td bgcolor="white" port="Malaga">Malaga</td></tr>
          <tr><td bgcolor="white" port="Barcelona">Barcelona</td></tr>
          <tr><td bgcolor="white" port="Valencia">Valencia</td></tr>
        </table>>];
        
        Netherlands [label=<
        <table border="0" cellborder="1" cellspacing="0">
          <tr><td><i>Netherlands</i></td></tr>
          <tr><td bgcolor="yellow" port="Amsterdam">Amsterdam</td></tr>
          <tr><td bgcolor="white" port="Rotterdam">Rotterdam</td></tr>
          <tr><td bgcolor="white" port="Dokkum">Dokkum</td></tr>
        </table>>];
        
        Italy [label=<
        <table border="0" cellborder="1" cellspacing="0">
          <tr><td><i>Italy</i></td></tr>
          <tr><td bgcolor="yellow" port="Rome">Rome</td></tr>
          <tr><td bgcolor="white" port="Venice">Venice</td></tr>
          <tr><td bgcolor="white" port="Milan">Milan</td></tr>
        </table>>];
        
        France [label=<
        <table border="0" cellborder="1" cellspacing="0">
          <tr><td><i>France</i></td></tr>
          <tr><td bgcolor="yellow" port="Paris">Paris</td></tr>
          <tr><td bgcolor="white" port="Nice">Nice</td></tr>
          <tr><td bgcolor="white" port="Marseille">Marseille</td></tr>
        </table>>];

        Spain:Madrid->Netherlands:Dokkum[ color="blue",style=solid ]
        Spain:Barcelona->Italy:Milan[ color="blue",style=solid ]
        Spain:Malaga->Netherlands:Amsterdam[color="blue", style=solid ]
        Spain:Valencia->France:Nice[color="blue", style=solid ]
}


    // {  rank=same;
        // 00 [style=invis];
        // 01 [style=invis];
        // 00 -> 01 [constraint=false,style=invis];
    // }

     // 00 -> Spain [style=invis];
     // 01 -> China [style=invis];
    
   // Spain -> China [ style=invis];
}
有向图{
节点[形状=平面]
rankdir=LR;
子图簇
label=“亚洲”;
中国[标签=];
印度[标签=];
泰国[标签=];
尼泊尔[标签=];
中国:上海->泰国:曼谷[color=“blue”,style=solid]
中国:北京->尼泊尔:加德满都[color=“blue”,style=solid]
中国:天津->印度:新德里[color=“blue”,style=solid]
中国:重庆->印度:艾哈迈达巴德[color=“blue”,style=solid]
印度:艾哈迈达巴德->印度:孟买[color=“blue”,style=solid]
}
子图簇{
label=“欧洲”;
西班牙[标签=];
荷兰[标签=<
荷兰
阿姆斯特丹
鹿特丹
多库姆
>];
意大利[标签]=<
意大利
罗马
威尼斯
米兰
>];
法国[标签]=<
法国
巴黎
美好的
马赛
>];
西班牙:马德里->荷兰:Dokkum[color=“blue”,style=solid]
西班牙:巴塞罗那->意大利:米兰[color=“blue”,style=solid]
西班牙:马拉加->荷兰:阿姆斯特丹[color=“blue”,style=solid]
西班牙:瓦伦西亚->法国:尼斯[颜色=“蓝色”,风格=纯色]
}
//{rank=相同;
//00[style=invi];
//01[style=invi];
//00->01[constraint=false,style=Invi];
// }
//00->西班牙[style=invi];
//01->中国[style=invi];
//西班牙->中国[style=invi];
}
请注意,对角线代码在代码范围的底部被注释掉

我的问题


如何更改代码以获得与第一张图像尽可能相似的结果?

感谢Albert的评论,我找到了解决方案:

代码如下:

digraph {
    node [shape=plain]
    rankdir=LR;

subgraph cluster_Asia { 
    label = "Asia";

    China [label=<<table border="0" cellborder="1" cellspacing="0">
      <tr><td><i>China</i></td></tr>
      <tr><td bgcolor="yellow" port="Shanghai">Shanghai</td></tr>
      <tr><td bgcolor="white" port="Beijing">Beijing</td></tr>
      <tr><td bgcolor="white" port="Chongqing">Chongqing</td></tr>
      <tr><td bgcolor="white" port="Tianjin">Tianjin</td></tr>
    </table>>];
    
      India [label=<<table border="0" cellborder="1" cellspacing="0">
      <tr><td><i>India</i></td></tr>
      <tr><td bgcolor="yellow" port="NewDelhi">NewDelhi</td></tr>
      <tr><td bgcolor="white" port="Mumbai">Mumbai</td></tr>
      <tr><td bgcolor="white" port="Bangalore">Bangalore</td></tr>
      <tr><td bgcolor="white" port="Ahmadabad">Ahmadabad</td></tr>
    </table>>];

    Thailand [label=<<table border="0" cellborder="1" cellspacing="0">
      <tr><td><i>Thailand</i></td></tr>  
      <tr><td bgcolor="yellow" port="Bangkok">Bangkok</td></tr>
      <tr><td bgcolor="white" port="ChiangRai">ChiangRai</td></tr>
    </table>>];
    
    Nepal [label=<<table border="0" cellborder="1" cellspacing="0">
      <tr><td><i>Nepal</i></td></tr>
      <tr><td bgcolor="yellow" port="Kathmandu">Kathmandu</td></tr>
      <tr><td bgcolor="white" port="Birgunj">Birgunj</td></tr>
    </table>>];
      
    China:Shanghai->Thailand:Bangkok[color="blue", tyle=solid ]
    China:Beijing->Nepal:Kathmandu[color="blue", style=solid ]
    China:Tianjin->India:NewDelhi[color="blue",style=solid ]
    China:Chongqing->India:Ahmadabad[color="blue", style=solid ]
    India:Ahmadabad->India:Mumbai[color="blue", style=solid ]
}


  
  subgraph cluster_Europe {
        label = "Europe"; 

        Spain [label=<<table border="0" cellborder="1" cellspacing="0">
          <tr><td><i>Spain</i></td></tr>
          <tr><td bgcolor="yellow" port="Madrid">Madrid</td></tr>
          <tr><td bgcolor="white" port="Malaga">Malaga</td></tr>
          <tr><td bgcolor="white" port="Barcelona">Barcelona</td></tr>
          <tr><td bgcolor="white" port="Valencia">Valencia</td></tr>
        </table>>];
        
        Netherlands [label=<
        <table border="0" cellborder="1" cellspacing="0">
          <tr><td><i>Netherlands</i></td></tr>
          <tr><td bgcolor="yellow" port="Amsterdam">Amsterdam</td></tr>
          <tr><td bgcolor="white" port="Rotterdam">Rotterdam</td></tr>
          <tr><td bgcolor="white" port="Dokkum">Dokkum</td></tr>
        </table>>];
        
        Italy [label=<
        <table border="0" cellborder="1" cellspacing="0">
          <tr><td><i>Italy</i></td></tr>
          <tr><td bgcolor="yellow" port="Rome">Rome</td></tr>
          <tr><td bgcolor="white" port="Venice">Venice</td></tr>
          <tr><td bgcolor="white" port="Milan">Milan</td></tr>
        </table>>];
        
        France [label=<
        <table border="0" cellborder="1" cellspacing="0">
          <tr><td><i>France</i></td></tr>
          <tr><td bgcolor="yellow" port="Paris">Paris</td></tr>
          <tr><td bgcolor="white" port="Nice">Nice</td></tr>
          <tr><td bgcolor="white" port="Marseille">Marseille</td></tr>
        </table>>];

        Spain:Madrid->Netherlands:Dokkum[ color="blue",style=solid ]
        Spain:Barcelona->Italy:Milan[ color="blue",style=solid ]
        Spain:Malaga->Netherlands:Amsterdam[color="blue", style=solid ]
        Spain:Valencia->France:Nice[color="blue", style=solid ]
}

    {  
      00 [style=invis];
      01 [style=invis];
      02 [style=invis];
      03 [style=invis];
      00 -> 01 -> 02 -> 03 [style=invis];

      00 -> Spain [style=invis];
      01 -> Netherlands [style=invis];
      01 -> Italy [style=invis];
      01 -> France [style=invis];
      02 -> China [style=invis];
      03 -> Nepal [style=invis];
      03 -> Thailand [style=invis];
      03 -> India [style=invis];
    
    Spain -> China [ style=invis];
    }
}
有向图{
节点[形状=平面]
rankdir=LR;
子图簇
label=“亚洲”;
中国[标签=];
印度[标签=];
泰国[标签=];
尼泊尔[标签=];
中国:上海->泰国:曼谷[color=“blue”,tyle=solid]
中国:北京->尼泊尔:加德满都[color=“blue”,style=solid]
中国:天津->印度:新德里[color=“blue”,style=solid]
中国:重庆->印度:艾哈迈达巴德[color=“blue”,style=solid]
印度:艾哈迈达巴德->印度:孟买[color=“blue”,style=solid]
}
子图簇{
label=“欧洲”;
西班牙[标签=];
荷兰[标签=<
荷兰
阿姆斯特丹
鹿特丹
多库姆
>];
意大利[标签]=<
意大利
罗马
威尼斯
米兰
>];
法国[标签]=<
法国
巴黎
美好的
马赛
>];
西班牙:马德里->荷兰:Dokkum[color=“blue”,style=solid]
西班牙:巴塞罗那->意大利:米兰[color=“blue”,style=solid]
西班牙:马拉加->荷兰:阿姆斯特丹[color=“blue”,style=solid]
西班牙:瓦伦西亚->法国:尼斯[颜色=“蓝色”,风格=纯色]
}
{  
00[style=invi];
01[style=invi];
02[style=invi];
03[style=invi];
00->01->02->03[style=invi];
00->西班牙[style=invi];
01->荷兰[style=invi];
01->意大利[style=invi];
01->法国[style=invi];
02->China[style=invi];
03->Nepal[style=invi];
03->泰国[style=invi];
03->印度[style=invi];
西班牙->中国[style=invi];
}
}

最后一个作用域是修复布局。

您可能需要使用rankdir,一个好的开始可能是:注意,曼谷有属性
tyle
而不是
style
。很高兴知道罗马现在是意大利和法国的首都(:-))谢谢你的评论,我也会检查这个链接,至于巴黎和打字错误-我已经在代码中修复了它,但没有在图片中。谢谢你指出这一点