Graphviz---随机节点顺序和经过标签的边

2023-12-04

我有以下点文件:

digraph finite_state_machine {
    {
        rank=same;
        node [shape = doublecircle]; q_5;
        node [shape = circle];
        q_1 -> q_2 [ label = "." ];
        q_1 -> q_2 [ label = "\epsilon" ];
        q_2 -> q_1 [ label = "\epsilon" ];
        q_2 -> q_3 [ label = "a" ];
        q_3 -> q_4 [ label = "^\wedge a" ];
        q_3 -> q_4 [ label = "\epsilon" ];
        q_4 -> q_3 [ label = "\epsilon" ];
        q_4 -> q_5 [ label = "b" ];
    }
}

我的印象是节点会按照它们提到的顺序出现。但顺序对我来说似乎是随机的。我希望顺序是从左到右,按照下标的顺序。另外,边缘会穿过标签,我该如何避免这种情况?

This is the current image: current output


Graphviz 确实根据彼此之间的边来布局节点,而不是按照出现的顺序。如果您希望一条边不影响任何节点的位置,您可以通过添加constraint=false.

因此,该图:

digraph finite_state_machine {
  pad=0.2;
    {
        rank=same;
        node [shape = doublecircle]; q_5;
        node [shape = circle];
        q_1 -> q_2 [ label = "." ];
        q_1 -> q_2 [ label = "\epsilon", constraint=false ];
        q_2 -> q_1 [ label = "\epsilon", constraint=false ];
        q_2 -> q_3 [ label = "a" ];
        q_3 -> q_4 [ label = "^\wedge a" ];
        q_3 -> q_4 [ label = "\epsilon", constraint=false ];
        q_4 -> q_3 [ label = "\epsilon", constraint=false ];
        q_4 -> q_5 [ label = "b" ];
    }
}

将为您带来:

graphviz output finite state machine

我必须添加pad为了不让一些标签被切断。

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

Graphviz---随机节点顺序和经过标签的边 的相关文章

  • graphviz - 比较图形树

    我必须用 graphviz 来做一份工作 我需要可视化几棵树的图形表示 但无论如何我都必须比较两棵树以查看它们的差异 像这样 我有树 A 和树 B 创建它们的表示并比较它们后 我只需要查看没有共同点的节点 有人告诉我使用 EMF Compa
  • 如何使用 matplotlib 或 graphviz 在 networkx 中绘制多重图

    当我将多图 numpy 邻接矩阵传递给 networkx 时 使用 from numpy matrix 函数 然后尝试使用 matplotlib 绘制图形 它会忽略多条边 我怎样才能让它绘制多条边 Graphviz 在绘制平行边方面做得很好
  • 保存图表失败!验证 Graphviz 是否已安装并位于您的路径中,或使用 filetype=dot

    当我跑步时rake db migrate我收到这个错误 rake aborted Saving diagram failed Verify that Graphviz is installed and in your path or use
  • C++ Boost Graph Library:输出自定义顶点属性

    我正在努力寻找一位定制房产作家与 BGL 合作 struct IkGraph VertexProperty int id int type std pair
  • Force GraphViz 节点之间的力距离

    我将 GraphViz 与以下点文件一起使用 digraph G rankdir LR subgraph commits 5c071a6b2c gt 968bda3251 gt 9754d40473 gt 9e59700d33 gt 2a3
  • Graphviz 未在 jupyter 笔记本 python = 3.6 中运行?

    我正在尝试运行 graphviz 以查看 jupyter 笔记本上的点文件 其中已导入 dot exe 路径的路径 G anaconda3 envs tensorflowgpu Library bin graphviz G anaconda
  • 无法绘制石榴图(未找到 pygraphviz)

    我不明白发生了什么 但我似乎不再能够从 PyCharm 内部绘制石榴图 我使用 conda 作为包管理器 并按照惯例进行了操作 conda install graphviz conda install python graphviz 但每次
  • 使用 pydot 绘制决策树

    我已经训练了一个决定tree Python字典 如下 现在我尝试使用它来绘制它pydot http code google com p pydot 在定义树 pydot 图 的每个节点时 我为其指定一个唯一 且详细 的名称和一个简短的标签
  • 如何在Mac上打开点[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 首先 我是MacOS新手 我想要的是能够看到输出llc view dag combine1 dags sum ll 在Mac上 llc h
  • 如果我使用 DOT 和 doxygen,如何更改由 graphviz 创建的图表在 HTML 中的位置?

    我在 doxygen 中使用 dot 和 Graphviz 以 HTML 格式创建代码的用户手册 doxygen 代码看起来有点像这样 br addtogroup MainProgram dot digraph G Main label M
  • 如何在graphviz中强制Y坐标

    有没有办法在 graphviz 中使用 dot force y 位置 以像素或英寸为单位 The rank same不适合我的情况 The pos x y with Kfdp可能是一种方法 但我想让 GraphViz 确定 X位置 Than
  • Graphviz --- 边标签距离另一条边太近

    我有以下代码 其结果如下图所示 正如您所看到的 边缘和边缘标签周围有点拥挤 尤其是 a 周围 创造更多空间的最佳方法是什么 以便人们可以清楚地看到哪个标签属于哪个边缘 digraph finite state machine pad 0 2
  • 在 graphviz 中使用符号字体/数学符号

    环境 graphviz 2 38 Windows 7 Using dot 我想生成如下所示的路径图来表示结构方程模型 好吧 这里只是一个简单的单因素测量模型 我想对某些节点和边使用希腊字母 并且实际上更喜欢如果我可以在点文件中使用类似 La
  • GraphViz - 子图的对齐

    I d like to draw a diagram like this But the only diagram I can draw is 我使用的代码 graph rankdir LR node shape box x1 x2 x3
  • 如何控制 graphviz 中的节点放置(即避免边缘交叉)

    我正在使用 graphviz 点 生成您可以在下面看到的图表 左下角的节点 红色椭圆 会引起烦恼 因为它的边缘与相邻节点的多个边缘交叉 有没有办法将节点放置限制在某个区域 您可以创建一个不可见的约束 以使红色节点出现在所有其他节点的左侧 r
  • 以前没有发生过的访问冲突

    我正在 P 调用 Graphviz如图所示 http implicitoperator com blog 2009 12 24 rendering an in memory graphviz image with c html 当我写那篇博
  • 如何使用 haskell graphViz 绘制图表

    我计划使用 Haskell graphViz 绘制图表 我是 Haskell 的新手 所以这对我来说相当困难 有人可以给我看一个简单的例子吗 实际上我需要一个非常简单的示例 以便我可以理解它并在我正在处理的场景中使用它 我在尝试安装 Cha
  • 将 doxygen 的图表从上到下方向翻转为从左到右

    doxygen 图为 includes and 包含在 创建的嵌套深度从上到下递增 使用 1 8 5 由于我们的图大多是带有许多节点的浅图 这会导致非常宽的图和丑陋的水平滚动条 有没有办法教 doxygen 以从左到右的方向创建这些图 就像
  • 如何更改 graphviz 的默认字体大小?

    我使用 doxygen graphviz 来记录我的代码 graphviz 在生成图像方面做得很好 有什么方法可以更改 graphviz 的默认字体大小吗 默认值为 14 但我想使用 12 更改单个元素 例如节点 子图 边缘等 的字体大小确
  • graphviz 嵌入 url

    我试图弄清楚如何生成带有超链接的图表 您可以单击以访问图表中每个节点 边的更多详细信息 我发现 graphviz 使用 URL 节点属性具有这种能力 使用我的测试文件 graph G node label N graph bb 0 0 21

随机推荐