【问题标题】:invisible edges layout issues隐形边缘布局问题
【发布时间】:2018-03-19 23:17:56
【问题描述】:

我有一个密集的点图,其中包含许多边和一个与几乎任何其他节点都有连接的节点。

例如:

digraph TEST
{
  rankdir=LR;
  node [shape=plaintext];   
  graph [compound=true];

  A[label=<<table  border="0" cellspacing="0" cellborder="1" >
          <tr><td >A</td></tr>
          <tr><td port='a1'>a1</td></tr>
          <tr><td port='a2'>a2</td></tr>
          </table>>];

  B;
  C;
  D;
  E;
  F;
  G;
  H; 
  I;

 A:a1:e->B:w;
 A:a1:e->C:w;
 A:a1:e->D:w;
 A:a1:e->E:w;
 A:a1:e->F:w;
 A:a1:e->G:w;
 A:a1:e->H:w; 
 A:a1:e->I:w;



 A:a2:e->B:w;
 B:e->C:w;
 C:e->D:w;
 D:e->E:w;
 E:e->F:w;
 E:e->G:w;
 E:e->H:w;
 F:e->I:w
 G:e->I:w
 H:e->I:w
}

我想隐藏a1 连接并添加某种跳转标签以保持信息对读者可用。

例如:

 A:a1:e->{a1_out[label="a1"]};

 {a1_Bin[label="a1"]}->B:w;
 {a1_Cin[label="a1"]}->C:w;
 {a1_Din[label="a1"]}->D:w;
 {a1_Ein[label="a1"]}->E:w;
 {a1_Fin[label="a1"]}->F:w;
 {a1_Gin[label="a1"]}->G:w;
 {a1_Hin[label="a1"]}->H:w; 
 {a1_Iin[label="a1"]}->I:w;

将属性[style=invis] 添加到a1-connections 只是不会渲染它们,而是保持布局与它们一样。结果是节点和标签的位置看起来很奇怪,因为其他地方的空间和密集连接。 完全删除连接确实会改变图的语义和图节点的等级(在此示例中没有,但在其他示例中会)。

所以我正在寻找一种方法来提供dot 信息以正确计算一侧节点之间的所有依赖关系并建议它,而不是在另一侧绘制渲染和绘制这些连接。

【问题讨论】:

    标签: graphviz dot


    【解决方案1】:

    清理此类图中边缘的方法可能是使用

    concentrate=true
    

    根据documentation,这将

    ... 将多边合并为一条边并导致部分平行 边缘共享部分路径

    【讨论】:

    • 不是我想要的,但感谢您指出我这个参数。很高兴知道 - 在某些情况下也可能有所帮助。
    猜你喜欢
    • 2011-09-24
    • 2011-09-15
    • 2014-06-12
    • 2016-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-09
    相关资源
    最近更新 更多