gpt4 book ai didi

python - 在 Jupyter Python 中使用 Graphviz 设置节点位置

转载 作者:行者123 更新时间:2023-12-04 01:54:33 27 4
gpt4 key购买 nike

我想用随机节点位置制作一个图表,但似乎节点的“pos”属性什么也不做。这是一个最小的例子:

import graphviz
import pylab
from graphviz import Digraph

g = Digraph('G', filename='ex.gv',format='pdf')
g.attr(size='7')
g.node('1',pos='1,2')
g.node('2',pos='2,3')
g.node('3',pos='0,0')
g.edge('1','2')
g.edge('1','3')
graphviz.Source(g)

关于如何实现这一目标的任何想法?
提前致谢。

最佳答案

虽然在文档中不是 100% 清楚,但我认为输入时点引擎不支持 pos。 fdp 尼托 引擎确实支持 pos on input 用于设置初始位置,如果您以“!”结束坐标规范,则坐标不会改变,从而成为最终节点位置。

https://beta.observablehq.com/@magjac/placing-graphviz-nodes-in-fixed-positions 玩一个活生生的例子

这个独立的 python 脚本生成一个带有预期节点位置的 pdf:

#!/usr/bin/python

import graphviz
from graphviz import Digraph

g = Digraph('G', engine="neato", filename='ex.gv',format='pdf')
g.attr(size='7')
g.node('1',pos='1,2!')
g.node('2',pos='2,3!')
g.node('3',pos='0,0!')
g.edge('1','2')
g.edge('1','3')
g.render()

由于 SO 不支持 pdf 上传,这里是使用相同代码生成的 png 图像,除了 format='png':

enter image description here

没有感叹号,你会得到:

enter image description here

根本没有任何 pos 属性,您会得到类似(但不完全相同)的结果:

enter image description here

关于python - 在 Jupyter Python 中使用 Graphviz 设置节点位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51272498/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com