【问题标题】:forcing left-right node order in graphviz/dot tree visualization在graphviz /点树可视化中强制左右节点顺序
【发布时间】:2016-11-24 05:01:54
【问题描述】:

我正在使用 dot/graphviz 可视化一系列二叉树,其中每棵树都可能向后指向先前的树。我遇到的问题是我想强制子节点位于其父节点的左侧或右侧。请注意,在第一个框中,从父级 177 出来的箭头在正确的一侧,但子级是相反的。我怎样才能强迫孩子站在正确的一边?

digraph ptree {
subgraph cluster_3 {
"0x2518250" [label=177,style=filled,fillcolor=black,fontcolor=white]
"0x2518250":sw -> "0x25181e0"
"0x25181e0" [label=86,style=filled,fillcolor=black,fontcolor=white]
null10 [shape=point];
"0x25181e0" -> null10;
"0x25181e0":se -> "0x251a7e0"
"0x251a7e0" [label=115,style=filled,fillcolor=red]
null11 [shape=point];
"0x251a7e0" -> null11;
null12 [shape=point];
"0x251a7e0" -> null12;
"0x2518250":se -> "0x251fc00"
"0x251fc00" [label=183,style=filled,fillcolor=black,fontcolor=white]
null13 [shape=point];
"0x251fc00" -> null13;
null14 [shape=point];
"0x251fc00" -> null14;
}
subgraph cluster_4 {
"0x251ef80" [label=177,style=filled,fillcolor=black,fontcolor=white]
"0x251ef80":sw -> "0x25181e0"
"0x251ef80":se -> "0x251ef10"
"0x251ef10" [label=183,style=filled,fillcolor=black,fontcolor=white]
null15 [shape=point];
"0x251ef10" -> null15;
"0x251ef10":se -> "0x251eea0"
"0x251eea0" [label=193,style=filled,fillcolor=red]
null16 [shape=point];
"0x251eea0" -> null16;
null17 [shape=point];
"0x251eea0" -> null17;
}
}

【问题讨论】:

    标签: tree graphviz dot


    【解决方案1】:

    导致顺序变化的原因是从右子图到86节点的边。您可以在左侧 183 节点添加另一个不可见边,这将解决问题:

    digraph ptree {
    subgraph cluster_3 {
    "0x2518250" [label=177,style=filled,fillcolor=black,fontcolor=white]
    "0x2518250":sw -> "0x25181e0"
    "0x25181e0" [label=86,style=filled,fillcolor=black,fontcolor=white]
    null10 [shape=point];
    "0x25181e0" -> null10;
    "0x25181e0":se -> "0x251a7e0"
    "0x251a7e0" [label=115,style=filled,fillcolor=red]
    null11 [shape=point];
    "0x251a7e0" -> null11;
    null12 [shape=point];
    "0x251a7e0" -> null12;
    "0x2518250":se -> "0x251fc00"
    "0x251fc00" [label=183,style=filled,fillcolor=black,fontcolor=white]
    null13 [shape=point];
    "0x251fc00" -> null13;
    null14 [shape=point];
    "0x251fc00" -> null14;
    }
    subgraph cluster_4 {
    "0x251ef80" [label=177,style=filled,fillcolor=black,fontcolor=white]
    "0x251ef80":sw -> "0x25181e0"
    "0x251ef80":sw -> "0x251fc00" [style=invis] #  <--- here is the change
    "0x251ef80":se -> "0x251ef10"
    "0x251ef10" [label=183,style=filled,fillcolor=black,fontcolor=white]
    null15 [shape=point];
    "0x251ef10" -> null15;
    "0x251ef10":se -> "0x251eea0"
    "0x251eea0" [label=193,style=filled,fillcolor=red]
    null16 [shape=point];
    "0x251eea0" -> null16;
    null17 [shape=point];
    "0x251eea0" -> null17;
    }
    }
    

    【讨论】:

      猜你喜欢
      • 2015-07-04
      • 1970-01-01
      • 2012-12-16
      • 1970-01-01
      • 2017-10-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-16
      相关资源
      最近更新 更多