gpt4 book ai didi

python - 如何在 pygraphviz 中制作无向图?

转载 作者:太空狗 更新时间:2023-10-30 01:38:34 26 4
gpt4 key购买 nike

我正在尝试在 pygraphviz 中生成无向图,但没有成功。似乎无论我做什么,图形总是有向的。

Example #1
G = pgv.AGraph(directed=False)
G.is_directed() # true

Example #2
G = pgv.AGraph()
G.to_undirected().is_directed() # True

Example #3
G = pgv.AGraph(directed=False)
G.graph_attr.update(directed=False)
G.is_directed() # true

我不知道为什么这么微不足道的东西不能工作。我做错了什么?

最佳答案

我在 pygraphviz 1.2 上遇到了同样的问题,但我有一个解决方法。

如果您使用 DOT language 将所需的图表类型指定为空图表(例如 graph foo {}),并将其传递给 AGraph 的构造函数,然后 pygraphviz 尊重图形类型,即使在作为关键字参数给出时它可能会忽略它(在我的环境中)。

>>> import pygraphviz as pgv
>>> foo = pgv.AGraph('graph foo {}')
>>> foo.is_directed()
False
>>> foo.add_edge('A', 'B')
>>> print foo
graph foo {
A -- B;
}

解决方法也适用于 strict 参数,它在我的环境中也被忽略了。

使用以下函数代替 pgv.AGraph 以获得相同的 API:

def AGraph(directed=False, strict=True, name='', **args):
"""Fixed AGraph constructor."""

graph = '{0} {1} {2} {{}}'.format(
'strict' if strict else '',
'digraph' if directed else 'graph',
name
)

return pgv.AGraph(graph, **args)

关于python - 如何在 pygraphviz 中制作无向图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14374412/

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