首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否可以用指定的固定布局在Graphviz中定义子图(群集)

是否可以用指定的固定布局在Graphviz中定义子图(群集)
EN

Stack Overflow用户
提问于 2022-05-19 14:20:28
回答 1查看 105关注 0票数 0

如何在Graphviz中创建具有特定位置的节点的子图/簇,然后让Graphviz根据一组相互连接的边(即不在子图中的边)旋转和排列这些子图?

这是我目前的尝试。问题是,我希望能够定义节点的内部顺序,例如,子图"3“中的节点在一行中对齐(并且总是排序为able ):

代码语言:javascript
复制
graph {
    forcelabels=true
    color=lightgrey

    subgraph cluster_1 {
        node[shape=point]  
        {rank=same r1A r1B}
        label="1"
        r1A [xlabel="A", fontsize=7]
        r1B [xlabel="B", fontsize=7]
    }
    subgraph cluster_2 {
        node[shape=point]
        {rank=same r2A r2B}
        label="2"
        r2A [xlabel="A", fontsize=7]
        r2B [xlabel="B", fontsize=7]
    }

    subgraph cluster_3 {
        node[shape=point]
        {rank=same volA volB volC}
        label="3"
        volA [xlabel="A", fontsize=7]
        volB [xlabel="B", fontsize=7]
        volC [xlabel="C", fontsize=7]
    }
}

如果我添加边,我希望Graphviz能够旋转子图,但同时保持内部布局和顺序。在这里,使用引擎fdp,子图"3“会重新排列(原因很明显,因为我没有任何方法来修复布局):

那么更高级的“布局”呢?是否有可能/可行地制作一个类似于微控制器的子图,例如:

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-20 17:51:51

  • Unfortunately,中没有任何一个Graphviz引擎执行节点旋转。您必须为节点旋转创建一个完整的引擎(体系结构支持此功能),或者只为节点旋转(更晚一些)创建一个预/后处理器
  • ,而且Graphviz似乎只支持根图形级别的文本旋转。这可能是一个杀手,取决于您想要使用集群的requirements.
  • If (建议:不),您可能需要使用引擎来排列您的nodes.
  • Html-records (可能与包含的图像),对于IC来说可能是一个“更好”的选择。同样,没有一个引擎会旋转它们,但是.
  • 循环很便宜,所以如果没有“太多”的集成电路,那么生成所有的可能性(每个IC旋转和不旋转),然后眼球评估或编写一个后处理程序来确定“最佳”结果。
  • 还注意到,石墨边路由可能不会产生您想要的结果。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72306280

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档