在 GraphViz 中将多个短节点与单个高节点并行排列

2024-05-21

我想生成这样的东西 - 节点的对齐是重要的事情,而不是边缘的角度:

+--------------+
|              |
+--------------+
   |        |
   V        V
+-----+  +-----+  <--- alignment at top
|     |  |     |
|     |->|     |
|     |  |     |
+-----+  |     |
   |     |     |
   V     |     |
+-----+  |     |
|     |  |     |
|     |->|     |
|     |  |     |
+-----+  +-----+  <--- alignment at bottom
   |        |
   V        V
+--------------+
|              |
+--------------+

我能想到的最好办法是将两个左节点粘贴到一个带有白色(=>不可见)边框的簇子图中,并将其中一条边的权重设置为0。但它仍然不太正确:

digraph G {

    // scale things down for example
    size="5,5" 
    rankdir=TD
    ranksep=1
    nodesep=1

    node [shape=box]

    node [width=5 height=2]
    top

    subgraph cluster_left
    {
        color=white
        node [width=2 height=2]
        left1
        left2
    }

    node [width=2 height=5]
    right

    node [width=5 height=2]
    bottom

    top->left1
    top->right

    left1->left2
    left1->right
    left2->right [weight=0]

    left2->bottom
    right->bottom
}

结果是这样的 - 对齐不良:

关于如何获得我想要的东西有什么想法吗?


我用 neato 和这个脚本做到了:

digraph G {
  layout="neato"
  // scale things down for example
  size="5,5" 
  rankdir=TD
  ranksep=1
  nodesep=1

  node [shape=box]

  top[pos="5,10!", width=5, height=2]

  left1[pos="3.5,7!", width=2, height=2]
  left2[pos="3.5,4!", width=2, height=2]

  right[pos="6.5,5.5!", width=2, height=5]

  bottom[pos="5,1!", width=5, height=2]

  top->left1
  top->right

  left1->left2
  left1->right
  left2->right

  left2->bottom
  right->bottom
}

结果如下:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 GraphViz 中将多个短节点与单个高节点并行排列 的相关文章

  • Graphviz中如何使边重叠?

    我想在 graphviz 中使边缘重叠 但 graphviz 似乎重新排列了叶节点以避免重叠 我可以强制 graphviz 停止重新排列节点吗 制作 Desired 我正在使用 pygraphviz 创建树 使用以下方法额外的隐形边缘非常适
  • 将 QHBoxLayout 的每个小部件对齐到顶部

    我试图将 QHBoxlayout 中的每个小部件对齐到顶部 但我得到的是每个小部件似乎都居中 我认为这是由于尺寸不同造成的 例如 from PyQt5 QtGui import from PyQt5 QtCore import from P
  • 未找到 GraphViz 的可执行文件:Anaconda-3

    我正在尝试显示树输出 但是当我运行下面的脚本时 我收到如下错误 IncationException 未找到 GraphViz 的可执行文件 我在这里搜索过类似的主题 但其中大多数与 Mac 相关 我使用的是 Windows 10 64 位操
  • 使用 GraphViz 理解 -fdump-tree 输出 gcc

    我创建了一个树转储 如下所述 如何将 gcc 生成的抽象语法树转储到 dot 文件中 https stackoverflow com questions 15800230 how can i dump an abstract syntax
  • C 避免对齐问题

    请解释一下 下面的示例到底有什么问题 特别是 这可能导致从不是四的倍数的地址加载 32 位无符号长整型 的部分 编译器通常会自然地防止对齐问题 对齐所有数据类型 事实上 对齐问题通常不是 内核开发人员主要关心的问题 gcc 人员必须担心 关
  • 如何通过消除蛇行和更好的边缘交叉来影响 Graphviz/dot 来制作更好的控制流图?

    我正在为 Python 程序绘制控制流图 并希望影响哪种边缘不 应交叉 有没有办法做到这一点 考虑这个简单的 Python 程序 try a 1 except a 2 else a 3 以及一个点程序来表示通过生成的控制流https git
  • 通过代码在LinearLayout中对齐Imageview

    问题很简单 我正在使用代码动态创建一个图像视图 ImageView btnSend new ImageView this 并将其添加到 LinearLayout 中 问题是我想保持右对齐 怎么做 提前致谢 尝试使用 LayoutParams
  • 将 doxygen 的图表从上到下方向翻转为从左到右

    doxygen 图为 includes and 包含在 创建的嵌套深度从上到下递增 使用 1 8 5 由于我们的图大多是带有许多节点的浅图 这会导致非常宽的图和丑陋的水平滚动条 有没有办法教 doxygen 以从左到右的方向创建这些图 就像
  • 确定 C/C++ 结构与其成员的对齐方式

    如果已知结构成员的对齐方式 是否可以找到结构类型的对齐方式 Eg for struct S a t a b t b c t c S max alignment of a alignment of b alignment of c 的对齐方式
  • PHP GD - 水平居中对齐文本并减小字体大小以将其保留在图像内

    希望你过得很好 我仍然是 php 的新手 所以在阅读了一些内容并检查了一些帖子之后 我能够使用 PHP GD 使用 imagecreatefrompng 函数在图像上放置一些文本 用户将进入一个表单 他们将能够输入他们的名字 并且名字将写在
  • 联合元素对齐

    如果我有一个联合 C 标准保证联合本身将与最大元素的大小对齐 union U long l int i short s char c 2 u 但对于工会内部各个工会成员的协调 它是怎么说的呢 下面的表达式能保证为真吗 u l u i u i
  • 从节点内部开始一条边

    digraph foo a label
  • 计算 QR 码对齐图案的位置

    我需要知道如何计算 QR 码对齐图案的位置 如中定义ISO IEC 18004 2000 附录 E 表 http www arscreatio com repositorio images n 23 SC031 N 1915 18004Te
  • Graphviz:能够接受更大文件的在线工具[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有谁知道有一个很好的在线网站来渲染 graphviz 点文件 该文件将需要更大的文件 例如 200 行
  • 联合体的大小比预期大。这里如何进行类型对齐?

    include
  • 您将如何显示/布局企业应用程序之间的数据流?

    我的雇主是一家大型瑞士电信公司 我们有许多系统用于为不同任务传输数据 例如性能管理 故障管理 配置管理等 为了向 管理 尖头等 解释这些系统如何交互 我将有关数据流 格式 协议的信息收集到 数据库 逗号分隔的说服者 中 然后为 Graphv
  • Theano导入错误

    我正在尝试在 CPU 机器上安装 Theano 运行 intel HD 显卡 没有 NVIDIA 在 python 中测试时出现以下导入错误 WARNING theano configdefaults g not detected Thea
  • 页面不会居中对齐

    我遇到了 CSS 问题 http www luukratief design nl dump parallax index html http www luukratief design nl dump parallax index htm
  • 如何使用点将图表输出到 SVG 的标题居中?

    到目前为止 我尝试了这条线 但点不断将其推到一边 为我的节点腾出空间 将其推到右侧 diagram info shape plaintext label My Diagram l fontsize 13 有没有办法使用点按 pos 使标签居
  • 使用 graphviz 绘制自定义 BGL 图表

    我是 Boost 图形库的新手 我尝试使用 graphviz 绘制图形 include

随机推荐