使用点语言在 Graphviz 中压缩有向图

2024-03-11

我正在尝试实现特定图(对称排列群的凯莱图)的可视化,就像此处所做的那样,但使​​用 Graphviz 2.28 和 Dot。

cayley
(source: euclideanspace.com http://www.euclideanspace.com/maths/discrete/groups/categorise/finite/cube/cayleyGraph.png)

digraph cayley {
    i -> x [color=red];
    i -> y [color=blue];
    x -> xx [color=red];
    x -> xy [color=blue];
    y -> yx [color=red];
    y -> yy [color=blue];
    xx -> xxx [color=red];
    xx -> xxy [color=blue];
    xy -> xyx [color=red];
    xy -> xyy [color=blue];
    yx -> yxx [color=red];
    yx -> xyx [color=blue];
    yy -> yyx [color=red];
    yy -> yyy [color=blue];
    xxx -> i [color=red];
    xxx -> xxxy [color=blue];
    xxy -> xxyx [color=red];
    xxy -> xxyy [color=blue];
    xyx -> xyxx [color=red];
    xyx -> xxyx [color=blue];
    xyy -> yy [color=red];
    xyy -> xyyy [color=blue];
    yxx -> yxxx [color=red];
    yxx -> xx [color=blue];
    yyx -> xxyy [color=red];
    yyx -> xyxx [color=blue];
    yyy -> yyyx [color=red];
    yyy -> i [color=blue];
    xxxy -> xxxyx [color=red];
    xxxy -> yyx [color=blue];
    xxyx -> yyy [color=red];
    xxyx -> xxxyx [color=blue];
    xxyy -> xyy [color=red];
    xxyy -> yxx [color=blue];
    xyxx -> xyxxx [color=red];
    xyxx -> xxx [color=blue];
    xyyy -> xyyyx [color=red];
    xyyy -> x [color=blue];
    yxxx -> y [color=red];
    yxxx -> xyyyx [color=blue];
    yyyx -> xxy [color=red];
    yyyx -> xyxxx [color=blue];
    xxxyx -> xyyy [color=red];
    xxxyx -> yx [color=blue];
    xyxxx -> xy [color=red];
    xyxxx -> yxxx [color=blue];
    xyyyx -> xxxy [color=red];
    xyyyx -> yyyx [color=blue];
}

My Dot generates the following layout: cayley which is a pretty huge graph compared with the previous one. Is there any attribute https://www.graphviz.org/doc/info/attrs.html that can compact the graph as close as possible to the first one ?


我修改了图、节点和边默认属性等代码,使布局尽可能紧凑。也许还有更完美的方法。顺便说一句,节点i位于左侧但不位于右侧。

digraph cayley {
    graph[rankdir=LR, center=true, margin=0.2, nodesep=0.1, ranksep=0.3]
    node[shape=circle, fontname="Courier-Bold", fontsize=10, width=0.4, height=0.4, fixedsize=true]
    edge[arrowsize=0.6, arrowhead=vee]
    i -> x [color=red];
    i -> y [color=blue];
    x -> xx [color=red];
    x -> xy [color=blue];
    y -> yx [color=red];
    y -> yy [color=blue];
    xx -> xxx [color=red];
    xx -> xxy [color=blue];
    xy -> xyx [color=red];
    xy -> xyy [color=blue];
    yx -> yxx [color=red];
    yx -> xyx [color=blue];
    yy -> yyx [color=red];
    yy -> yyy [color=blue];
    xxx -> i [color=red];
    xxx -> xxxy [color=blue];
    xxy -> xxyx [color=red];
    xxy -> xxyy [color=blue];
    xyx -> xyxx [color=red];
    xyx -> xxyx [color=blue];
    xyy -> yy [color=red];
    xyy -> xyyy [color=blue];
    yxx -> yxxx [color=red];
    yxx -> xx [color=blue];
    yyx -> xxyy [color=red];
    yyx -> xyxx [color=blue];
    yyy -> yyyx [color=red];
    yyy -> i [color=blue];
    xxxy -> xxxyx [color=red];
    xxxy -> yyx [color=blue];
    xxyx -> yyy [color=red];
    xxyx -> xxxyx [color=blue];
    xxyy -> xyy [color=red];
    xxyy -> yxx [color=blue];
    xyxx -> xyxxx [color=red];
    xyxx -> xxx [color=blue];
    xyyy -> xyyyx [color=red];
    xyyy -> x [color=blue];
    yxxx -> y [color=red];
    yxxx -> xyyyx [color=blue];
    yyyx -> xxy [color=red];
    yyyx -> xyxxx [color=blue];
    xxxyx -> xyyy [color=red];
    xxxyx -> yx [color=blue];
    xyxxx -> xy [color=red];
    xyxxx -> yxxx [color=blue];
    xyyyx -> xxxy [color=red];
    xyyyx -> yyyx [color=blue];
    { rank=same; x; y }
    { rank=same; xx; xy; yx; yy }
    { rank=same; xxx; xxy; xyx; xyy; yxx; yyx; yyy }
    { rank=same; xxxy; xxyx; xxyy; xyxx; xyyy; yxxx; yyyx }
    { rank=same; xxxyx; xyxxx; xyyyx }
}

图像如下所示。

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

使用点语言在 Graphviz 中压缩有向图 的相关文章

  • python graph-tool中的显式顶点位置

    我正在使用 python 图形工具 为了绘制图表 它使用graph draw功能 http projects skewed de graph tool doc draw html 我想将顶点位置显式发送到点引擎 事实证明我可以传递一个名为p
  • 如何在Mac上打开点[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 首先 我是MacOS新手 我想要的是能够看到输出llc view dag combine1 dags sum ll 在Mac上 llc h
  • 捕获 pygraphviz 图像渲染而不保存到文件?

    pygraphviz 是否允许您将图像渲染到变量 我想通过网页提供动态图像 而无需将图形渲染到磁盘 根据到源代码 https github com pygraphviz pygraphviz blob 1f7f314530080c152a4
  • Ubuntu graphviz 'sfdp' 不工作

    我正在尝试做一些Networkx Graphviz graphs 运行后 pos nx graphviz layout G prog sfdp 发生错误 说 Error remove overlap Graphviz not built w
  • Graphviz .dot 节点排序

    我正在构建一个 epsilon NFA 来使用规范结构识别正则表达式 我使用子图对正则表达式的各个部分进行分组 运算符给我带来了特别的麻烦 因为 dot 决定移动节点的顺序 我尝试添加边缘权重以强制特定边缘变短以保持边缘的顺序一致 但这似乎
  • graphviz 中的自循环边缘太短且难看

    我用graphviz画了一张图 请参见FSM https i stack imgur com bsVUW png 我认为它很丑 因为自环边缘太短 边缘的属性 minlen 对我不起作用 我尝试了节点的几个端口 但除了我当前的实现之外 一切都
  • Graphviz 和 Brew doctor - 意外的 dylibs 错误

    刚刚做了一个brew install graphviz在 Mountain Lion 上 这给了我这个错误 错误 执行失败 make install graphviz rb 47 以为我只是卸载它 所以跑了brew uninstall gr
  • GraphViz:仅修复节点的 y 位置

    我想固定节点的 y 位置 但根据力方向自动对齐 x 位置 每个 y 位置都是单独的 因为它对应于 y 轴上的一个坐标 并且有几千个节点 所以我认为为每个节点使用子图是不合理的 使用简单的力定向布局编写了我自己的 Java2D PDFGrap
  • 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
  • Java图形布局算法

    在我的 Java 应用程序中 我需要某种布局算法 第一种方法如下 需要安装Graphviz包 创建点文件 从java应用程序调用graphviz并解析输出 布局 使用 graphviz 的布局显示图形 属性点 但这个解决方案需要在运行的机器
  • Graphviz安装Ubuntu 14.04

    我正在尝试使用创建一个点文件京东项目 http javaddlib sourceforge net jdd 它需要安装 Graphviz 我尝试使用控制台安装它 sudo apt get install graphviz 在这种情况下 虽然
  • 如何避免graphviz中的重叠节点?

    我正在尝试绘制一个包含许多节点和边的图 然而 该图变得过于笨拙 节点和边重叠 我尝试了 未成功 以下所有方法或这些方法的组合 size 12 0 20 0 margin 0 0 len 1 0 我在用neato生成一个 png 文件 尺寸规
  • 如何可视化 sklearn GradientBoostingClassifier?

    我训练过一个梯度提升分类器 http scikit learn org stable modules generated sklearn ensemble GradientBoostingClassifier html sklearn en
  • graphviz 中跨越多行的记录

    我试图用点语言可视化一个相当复杂的结构 因为记录很大 所以我想把代码写成多行 所以而不是 A11 label A 11 Access Control A 11 1 Business requirements for access contr
  • 以前没有发生过的访问冲突

    我正在 P 调用 Graphviz如图所示 http implicitoperator com blog 2009 12 24 rendering an in memory graphviz image with c html 当我写那篇博
  • Graphviz中如何使边重叠?

    我想在 graphviz 中使边缘重叠 但 graphviz 似乎重新排列了叶节点以避免重叠 我可以强制 graphviz 停止重新排列节点吗 制作 Desired 我正在使用 pygraphviz 创建树 使用以下方法额外的隐形边缘非常适
  • 如何更改 graphviz 的默认字体大小?

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

    在过去的 15 分钟里 我一直在谷歌上搜索 试图找到这个问题的答案 但我似乎无法弄清楚 我的任务是为我在工作中开发的一些应用程序构建一些小流程图 他们不需要任何花哨的东西 因为他们将在 vizio 中将其转换为他们喜欢的格式 他们甚至说我们
  • 用于生成交互式图的 Java 库

    我想将我们的 SOA 服务可视化为图表 我们有商业服务和领域服务 gt domain service 1 e g business service 1 gt domain service 2 gt domain service 3 我目前使
  • 在 python 中使用 graphviz 从 DOT 文件绘制有向图

    这是API参考 http graphviz readthedocs io en latest api html for graphviz 我找不到任何从现有的生成有向图的方法dot源文件 方法如render and view保存在新文件中

随机推荐

  • Python 3.5 中的类型提示是什么?

    Python 3 5 中最受关注的功能之一是类型提示 一个例子类型提示中提到本文 http lwn net Articles 650904 and this one http lwn net Articles 640359 同时还提到负责任
  • jquery从字符串到时间的转换

    我正在开发一个系统 它以以下格式记录一天中的各个时间 06 53 22 or 19 23 58作为例子 谁能告诉我是否可以将此字符串转换为 javascript 构造 我可以用它来比较一天中的时间 您可以这样解析时间 function ti
  • 使用 -fPIC 编译的程序在跨过 GDB 中的线程局部变量时崩溃

    这是一个非常奇怪的问题 只有当程序编译时才会出现 fPIC option Using gdb我能够打印线程局部变量 但单步执行它们会导致崩溃 thread c include
  • WiX 中的新对话框,单击“后退”会跳过该对话框

    我是 WiX 的新手 正在尝试通过添加新的对话框来自定义对话框队列 新对话框的名称为 ServerChoice 流程为 SetupTypeDlg 完整或典型 ServerChoice verifyReadyDlg or SetupTypeD
  • Tomcat ExpiresFilter 无法正常工作

    我无法让 Tomcat 发送具有正确过期定义的图像 浏览器不断发送对已下载图像的 get 请求 Tomcat 响应 304 我想要的是 Tomcat 将使用正确的 expires 标头响应初始请求 并且没有任何 Last modified
  • 这是 n 层架构的正确实现吗?

    我在过去一年左右的时间里一直在学习 C 并尝试在此过程中融入最佳实践 在 StackOverflow 和其他网络资源之间 我认为我处于正确分离我的关注点的正确轨道上 但现在我有一些疑问 并希望在将整个网站转换为这个新网站之前确保我走的是正确
  • 将 null 值视为空元素的 XmlSerializer

    我正在编写一个小型 C 应用程序 它需要能够以 XML 形式读取 写入一些配置数据 我通过创建一些简单的模型类来做到这一点 其属性具有XmlElement在需要的地方添加属性 并通过一个XmlSerializer 我想要XmlSeriali
  • DBSCAN 算法可以创建少于 minPts 的簇吗?

    我刚刚编写了 DBSCAN 算法 我想知道 DBSCAN 算法是否可以允许集群中的点数少于所使用的 minPts 参数 我一直在使用http people cs nctu edu tw rsliang dbscan testdatagen
  • 在 kableExtra 表中合并迷你图

    我正在尝试创建一个带有副标题和迷你图的表格 我可以创建带有副标题的表格kableExtra包裹 我可以创建一个带有迷你图的表格formattable and sparkline包裹 但是 我无法将两者结合起来 有办法吗 我看见this ht
  • Visual Studio v.09 中的 Qt 与 C#/.NET?

    你们中有人有工作经验吗 Qt http en wikipedia org wiki Qt toolkit 和 Visual Studio 中的 C 它是否可能 易于一起使用 我已经搜索了 Qt 的 C 绑定 但所有项目似乎都已被放弃 我正在
  • python“导入错误:无法导入名称 urandom”

    不知何故 我的 python 被破坏并发出错误 jseidel EDP15 etc default python c import random Traceback most recent call last File
  • Windows 右键单击​​上下文菜单 + 子菜单

    如何在 Windows 上下文菜单中创建子菜单条目 我可以创建主菜单 但我也想关联一些子菜单 此外 如何将图标关联到菜单项 None
  • 使用 Ruby on Rails 的范围滑块

    使用Ruby on Rails 我的滑块代码如下 这给了我滑块如下 但我想要范围滑块 如下所示 它有两个滑块并给出两个值 something sliderjquery 方法 我在 ruby 中的代码应该是什么来显示滑块 如第二张图所示 我认
  • 如何使用 php mysqli 将事件的实时时间插入数据库?

    我正在尝试添加检查记录更改的日期时间 我在表中使用日期时间数据类型 date added datetime DEFAULT 0000 00 00 00 00 00 我使用以下 php 内置函数用于查询中的日期时间列 date Y m d H
  • ionic update-notifier-cordova.json' 您无权访问此文件

    我试图在 iOS 上运行 ionic 但它抛出一个错误 发生了什么 ionic run ios usr local lib node modules cordova node modules update notifier node mod
  • 检查图像文件类型

    我正在尝试向我的网站添加一个功能 用户可以将其个人资料图片设置为来自外部网址的图像 而不是将其保存到他们的电脑 然后将其上传到我的服务器 这是我到目前为止所想出的 filename inputs image url if getimages
  • Rails simple_form 属性需要标记 (*)

    我在我的应用程序中使用简单表单 我想删除 指示我的所有表单 现有表单和尚未创建的表单 都需要一个属性 我尝试过设置simple form rb Whether attributes are required by default or no
  • 在 C# 中使用 SetFilePointer 使堆栈不平衡

    好的 我在 NET 4 0 中使用 C 中的 SetFilePointer 函数 下面是我用来调用这个函数的 dllimports DllImport Kernel32 dll SetLastError true CharSet CharS
  • Numba:不支持单元格变量

    我想使用 numba 来加速此功能 from numba import jit jit def rownowaga numba u v wymiar x len u wymiar y len u 1 f 0 for j in range w
  • 使用点语言在 Graphviz 中压缩有向图

    我正在尝试实现特定图 对称排列群的凯莱图 的可视化 就像此处所做的那样 但使 用 Graphviz 2 28 和 Dot source euclideanspace com http www euclideanspace com maths