python中graphviz中的图形节点位置

我一直在寻找一段时间来在 python中的graphviz中指定图形中的节点位置.我在dot中找到了一个子图的 rank command,这是我正在寻找的,但是我找不到在python中将graphgraph中的子图和等级组合起来的方法.我也试图强制节点位置,但也没有工作.我创建了一个我想要实现的简单示例.

这是我的代码

from graphviz import Digraph

top_nodes = ['a','b','c']

other_nodes = ['d','e','f','g','m','n']

g = Digraph('test',format='png')

for n in top_nodes:
    g.node(str(n),color='red')

for n in other_nodes:
    g.node(str(n))

g.edge('a','d')
g.edge('d','g')
g.edge('g','m')
g.edge('m','n')
g.edge('b','e')
g.edge('b','f')
g.edge('e','n')
g.edge('c','f')

g.view()

这是输出

我希望红色节点(“源”)位于同一级别的图形顶部,只要保留分层布局,其余节点的位置就不那么重要了.

解决方法

尝试rank = same语句

enter image description here

digraph G {
a b c d e f g m n
{rank = same; a; b; c;}
a->d
d->g
g->m
m->n
b->e
b->f
e->n
c->f
}

相关文章

功能概要:(目前已实现功能)公共展示部分:1.网站首页展示...
大体上把Python中的数据类型分为如下几类: Number(数字) ...
开发之前第一步,就是构造整个的项目结构。这就好比作一幅画...
源码编译方式安装Apache首先下载Apache源码压缩包,地址为ht...
前面说完了此项目的创建及数据模型设计的过程。如果未看过,...
python中常用的写爬虫的库有urllib2、requests,对于大多数比...