社区首页 >问答首页 >Graphviz嵌套子图方向

Graphviz嵌套子图方向
EN

Stack Overflow用户
提问于 2021-09-30 16:05:28
回答 1查看 86关注 0票数 0

我最近看到了下面的图片。我知道它是用graphviz/dot创建的,但源代码是不可用的(遗失于时间)。

所需输出:

我一直在试图找到一种反向工程源代码的方法,但嵌套子图的水平排序一直给我带来了困难。在代码中,一个简单的最小的、主要工作的示例如下所示

代码语言:javascript
代码运行次数:0
复制
digraph G {
    A
    B
    subgraph cluster_0 {
        edge [style=invis]
        subgraph cluster_0_0 {
            D -> E -> F
        }
        C -> D -> E -> F -> G
    }

    A -> C
    A -> B
    A -> G
    B -> { D E F }
}

但是,这给了我以下输出:

newrank=true添加到外部子图中可以得到我正在寻找的水平方向:

代码语言:javascript
代码运行次数:0
复制
digraph G {
    A
    B
    subgraph cluster_0 {
        newrank=true
        edge [style=invis]
        subgraph cluster_0_0 {
            D -> E -> F
        }
        C -> D -> E -> F -> G
    }

    A -> C
    A -> B
    A -> G
    B -> { D E F }
}

但这会将节点设置为错误的顺序:

EN

回答 1

Stack Overflow用户

发布于 2021-10-01 09:14:27

我希望有更好的解决方案,但这里有一个(其余的节点标签应该是显而易见的):

代码语言:javascript
代码运行次数:0
复制
digraph G {
   newrank=true
   splines=false  // A->C edge gets wacky without this
   
   node [shape=Mrecord]
   // Mrecords produce this Warning:
   //   flat edge between adjacent nodes one of which has a record shape - replace records with HTML-like labels
   // but Mrecords still seem to work, so maybe ignore warning ??

   // hoped that ordering or weight or group attributes would
   // position C and G as desired, but nope
   // instead, clusters and constraint attribute worked, why?

    A [group=T label="{Measure|4/4}"]
    B [group=T]
    A -> B
    {
      rank=same C F E D G   // declare right-to-left ??
    }
    subgraph clusterCDEFG {
        graph [style=rounded]
    // within a rank, layout tends to be right-to-left
    // so, declare right-to-left ??
    // why do these clusters help position C & G ???    
       subgraph clusterG {  peripheries=0
       G 
        }
        subgraph clusterDEF {
      // declare right-to-left
      F
          E [group=T]
      D 
      edge [style=invis]
       //   D -> E -> F
        }
    // why do these clusters help position C & G ???
        subgraph clusterC { peripheries=0
       C
        }
    }

    A -> C  [constraint=false]  // why does this impact position within rank ??
    A -> G  [constraint=false]  // why does this impact position within rank ??
    B -> { F E D } // declare right-to-left ??
    edge [style=invis]
//    C -> D  // Mrecord shape has problems
//    F -> G  // Mrecord shape has problems
}

给予:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69399948

复制
相关文章
Graphviz
graphviz是贝尔实验室开发的一个开源的工具包,它使用一个特定的DSL(领域特定语言):dot作为脚本语言,然后使用布局引擎来解析此脚本,并完成自动布局。
润森
2019/10/30
1.5K0
Graphviz
Graphviz dot 笔记
输入文件是 <infile.dot> ,生成的格式由 指定,生成的文件是 。其中 -T 包括:
zucchiniy
2020/05/22
1.7K0
mac 安装Graphviz
由于需要绘制 plantUML,要求我安装Graphviz https://graphviz.org/download/ 方案1: brew install graphviz 失败告终 方案2: 先安装port 选择自己可以用的版本。 使用命令 sudo port install graphviz
JavaEdge
2021/12/07
1.4K0
mac 安装Graphviz
Python利用Graphviz画图
Graphviz的是AT&T Labs Research开发的图形绘制工具,他可以很方便的用来绘制结构化的图形网络,支持多种格式输出,生成图片的质量和速度都不错.Graphviz本身是开源的产品,下载可以到 这里,以及他的演示界面 Graphviz在windows上和Linux上都可以顺利运行。
里克贝斯
2021/05/21
2K0
Python利用Graphviz画图
Graphviz 使用教程
Graphviz 是一个开源的图可视化工具,非常适合绘制结构化的图标和网络。 本文记录安装即使用方法。 简介 graphviz 是贝尔实验室设计的一个开源的画图工具,它的强大主要体现在“所思即所得"(WYTIWYG,what you think is what you get),这是和office的“所见即所得“(WYSIWYG,what you see is what you get)完全不同的一种方式。 它的输入是一个用dot语言 编写的绘图脚本,通过对输入脚本的解析,分析出其中的点,边以
为为为什么
2022/08/10
2.8K0
Graphviz 使用教程
使用Doxygen + graphviz生成Unity 3d的UGUI类图
1) Graphviz,下载地址:http://download.csdn.net/detail/u010953266/8591169
meteoric
2018/11/19
1.2K0
使用Doxygen + graphviz生成Unity 3d的UGUI类图
使用Graphviz和Pyreverse
使用Graphviz和Pyreverse绘制Python项目结构图 简介 Graphviz开源的图形绘制工具包 Pyreverse分析Python代码和类关系的工具 安装 安装Graphviz 官网下载地址 注意添加bin/目录的路径到系统路径, 测试是否安装成功 dot --help 安装Pyreverse 现在pyreverse已经集成到pylint, 直接安装pylint即可 pip install pylint 测试是否安装成功 pyreverse --help 使用Pyr
py3study
2020/01/15
1.6K0
使用Graphviz和Pyreverse
mysql嵌套子查询的应用
sql语句中一个查询有时未必能满足需求,应对多表联查时就需要进行嵌套查询。嵌套查询的意思是,一个查询语句块可以嵌套在另外一个查询块的where子句中,称为嵌套查询。其中外层查询也称为父查询,主查询。内层查询也称子查询,从查询。 嵌套查询的工作方式是:先处理内查询,由内向外处理,外层查询利用内层查询的结果嵌套查询不仅仅可以用于父查询select语句使用。还可以用于insert、update、delete语句或其他子查询中。
OECOM
2020/07/01
4.2K0
跟着Science学画图:R语言ggplot2实现图中嵌图
部分数据代码是公开的 下载链接https://zenodo.org/record/4781590#.YSB40Hzivic
用户7010445
2021/10/13
1.3K0
pydotplus、Graphviz 安装配置
参考: https://blog.csdn.net/hawk_2016/article/details/82254228
yiyun
2022/04/01
7150
pydotplus、Graphviz 安装配置
解决 Windows OSError - pydot failed to call GraphViz.Please install GraphViz 报错
Windows操作系统下,运行pydot相关程序时(我的是keras.utils.plot_model)报错,提示没有安装GraphViz,事实上并不都是因为GraphViz没有安装,本文记录错误解决方法。 问题复现 操作系统:Win10 keras版本:2.2.4 在Win10系统下(Windows系列都可能出这个问题)keras建立简单的模型,执行 plot_model,报错: import keras from keras.models import Model from keras
为为为什么
2022/08/05
7210
解决 Windows OSError - pydot failed to call GraphViz.Please install GraphViz 报错
Anaconda配置pydot与graphviz
  本文介绍在Anaconda环境中,安装Python语言pydot与graphviz两个模块的方法。
疯狂学习GIS
2023/10/24
4040
Anaconda配置pydot与graphviz
使用xhprof + graphviz 性能追踪php站点
我们晓得一旦站点慢下来之后有很多原因,假如站点是LNMP结构,我们可以从Nginx,PHP,Mysql三部分去找原因(当然排除负载和外部设备问题),在PHP这块我们有个慢日志,终究可视化度没有那么高,如何快速追踪到瓶颈呢? xhprof是facebook开源出来的一个php轻量级的性能分析工具,跟Xdebug类似,但性能开销更低,还可以用在生产环境中,也可以由程序开 关来控制是否进行profile。 Graphviz由一种被称为DOT语言的图形描述语言,可以根据提供的节点以及线生成图形。 xhprof 是可
老七Linux
2018/05/31
1.6K0
graphviz dot 字段连接外键
图片1.png digraph "G" { graph [fontname = "Microsoft YaHei" rankdir = "LR" label=""] node [fontname = "Microsoft YaHei" shape = "record" ] edge [fontname = "Microsoft YaHei" arrowhead = "none" ] <A> [label = "A|<id>id|<B_id>B_id"] <B>
林万程
2022/01/09
1.3K0
graphviz dot 字段连接外键
RecycleView嵌套子RecycleView并且网格布局问题
问题:子RecycleView网格布局的话,使用GridSpacingItemDecoration控制间隔大小,不断上下滑动,部分间距会不断变大,超出界面
用户10521372
2023/07/07
3300
python决策树GraphViz可视化
安装GraphViz 下载地址:https://graphviz.gitlab.io/_pages/Download/Download_windows.html 选择msi文件下载,安装即可。安装完成后,将bin目录加入到系统path环境变量中 安装graphviz的python库 使用conda install python-graphviz命令安装即可 生成可视化文件 import graphviz # doctest: +SKIP from sklearn import tree print(dat
听城
2018/04/27
2.4K0
python决策树GraphViz可视化
使用graphviz绘制二叉树
Graphviz是开源免费跨平台图形绘制工具,使用其提供的dot语法,可以很方便的用来绘制“图”结构(这里的图可以理解为是数学上或者计算机科学中所说的图),并支持多种格式输出。 ###语法 首先,来简单看一下dot语法。 1. 使用digraph关键字定义有向图,使用->表述节点之间的关系。如: (g是图的名称,a,b,c是三个节点)
卡尔曼和玻尔兹曼谁曼
2019/01/22
1.2K0
使用graphviz绘制二叉树
思维导图结构化梳理Java进阶方向
写在前面 公众号的后台有读者给我留言说,对java每一阶段应该会什么技术感到迷茫。有个几年经验的爪娃们都经历过成长的阶段,但每个人成长阶段接触到的技术不尽相同。作为java思维导图的作者,我当然就想这
java思维导图
2018/04/24
1.3K0
思维导图结构化梳理Java进阶方向
SQL语句中的嵌套子查询「建议收藏」
一开始在学习的SQL语句的时候,没有感受到嵌套子查询的厉害,尤其是相关子查询。现在发现它的厉害之处,写下来记录!
全栈程序员站长
2022/09/22
1.5K0
SQL语句中的嵌套子查询「建议收藏」
点击加载更多

相似问题

Graphviz连接嵌套子图

14

Boost.Graph和Graphviz嵌套子图

11

graphviz:子图的不同方向

10

Graphviz更改边方向

125

强制边方向GraphViz

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档