【问题标题】:How to plot two graphs in a single dot file如何在一个点文件中绘制两个图形
【发布时间】:2021-12-29 13:28:06
【问题描述】:
digraph G {
rankdir = "TB";
node [shape=rectangle];

subgraph G1 {
rankdir = "LR";
  A->B
  A->C
}
subgraph G2 {
rankdir = "TB";
  1->2
  1->3
}

}

我了解rankdir 在子图中不起作用,这是一个长期悬而未决的问题。

但是,是否有任何解决方法可以实现这一点?

我也试过subgraph cluster_*,但无法垂直对齐两个子图。

【问题讨论】:

  • 您的目标是单个文件中的两个图还是两个具有不同 rankdir 值的图/子图?图片是否显示了您的目标或当前的最大努力?
  • @sroush 实际上,两者都是目标。不过,在一个文件中获取两个图表的优先级略高。 MWE 不代表给定的图。图代表我真正想要的。

标签: graphviz


【解决方案1】:

简单的答案:没有,或者至少一步没有。
多一点工作:是的,就像这样:

digraph G1 {
rankdir = "LR";
node [shape=rectangle];
  A->B
  A->C
}
  ////////////////////////
  // second distinct graph, all one input file
  ////////////////////////
digraph G2 {
rankdir = "TB";
node [shape=rectangle];
  1->2
  1->3
}

但如果您尝试生成 png、svg 或类似的图形,上述内容只会生成一个(或零个)图形。
但是,这组命令使用 Graphviz 工具产生所需的输出:

dot -Tdot myfile.gv >myfile.dot             ## note: -Tdot
gvpack -array_i1 myfile.dot >packed.dot     ## gvpack is a Graphviz program documented here:  https://graphviz.org/pdf/gvpack.1.pdf
neato -n2 -Tpng packed.dot >packed.png      ## neato -n2 documented here:  https://graphviz.org/faq/#FaqDotWithCoords

捐赠:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多