首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >端口networkx图到不带pygraphviz的图

端口networkx图到不带pygraphviz的图
EN

Stack Overflow用户
提问于 2017-11-13 13:44:12
回答 2查看 3.1K关注 0票数 3

我使用Python 3在windows机器上工作,尽管做了很多努力,但没有安装pygraphviz。单独讨论。

我有networkx和graphviz模块.是否有一种在networkx中构建网络图并提取为不使用pygraphviz?的图形显示格式的范例?

drawing.nx_agraph和nx_agraph中的所有相关功能似乎都需要pygraphviz,但我已经习惯了使用networkx并喜欢其中的功能。在networkx的文档中,它甚至表示他们关注的是图形对象的开发,而不是实际的显示。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-11-14 03:36:28

您可以使用pydot (https://pypi.python.org/pypi/pydot)作为PyGraphviz的纯Python替代品。

代码语言:javascript
复制
In [1]: import networkx

In [2]: import sys

In [3]: G = networkx.path_graph(4)

In [4]: networkx.drawing.nx_pydot.write_dot(G,sys.stdout)
strict graph  {
0;
1;
2;
3;
0 -- 1;
1 -- 2;
2 -- 3;
}
票数 3
EN

Stack Overflow用户

发布于 2019-03-16 00:44:32

我知道这是个老生常谈的问题,但我也在寻找同样的问题:如何从NetworkX中的图形中获取点符号

(如果你只对答案感兴趣,跳过这段。我实际上想要显示一个NetworkX多图,但是即使NetworkX是处理网络和图形的强大的python库,它在显示(呈现)图形和网络时也有相当有限的选择。NetworkX使用Matplotlib提供可视化图形的基本功能,而可视化多图没有选项。NetworkX不是用来可视化图形的,所以在NetworkX文档中,他们建议使用一些图形可视化工具,细胞角伤寒墨维兹。所有这些工具都有某种python接口,但最好的(最简单和最简单的使用)是图文,它支持图形绘图软件的DOT语言。在图文中可视化图形是非常简单和方便的,您可以使用一个简短的行,比如graph.view(),它默认创建一个PDF文件并在系统的默认PDF查看器中打开它,但是您也可以查看和创建图像文件,比如SVG和PNG。因此,理想的做法是将NetworkX图转换为图and图,并将NetworkX图转换为DOT符号,然后由图文读取。)

Aric的解决方案很简单,可以打印出图的DOT表示法,但这是一种黑客,而且在我的例子中,我需要将DOT符号保存在字符串变量中,这样我就可以使用它在图文中从那个DOT符号中创建一个图形。

networkx.drawing.nx_pydot.write_dot(来源)是一个创建DOT格式并将其保存到路径(文件句柄)的函数。这一职能的代码是:

代码语言:javascript
复制
@open_file(1, mode='w')
def write_dot(G, path):
    P = to_pydot(G)
    path.write(P.to_string())
    return

这给了我们答案:

代码语言:javascript
复制
from networkx import path_graph
from networkx.drawing.nx_pydot import to_pydot

G = path_graph(4)
dot = to_pydot(G).to_string()
print(dot)

函数to_pydot (来源)使用皮多特库创建具有to_string (来源)方法的pydot.Dot对象,该方法以DOT语言返回图形的字符串表示。

P.S.:要使用呈现DOT源代码 in 图文,您可以这样做:

代码语言:javascript
复制
from graphviz import Source
src = Source(dot) # dot is string containing DOT notation of graph
src.view()

P.P.S.:使用Matplotlib (图像的左侧)和图文 (图像的右侧)可视化图形networkx.margulis_gabber_galil_graph(3)时,以下两幅图片显示不同的效果

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

https://stackoverflow.com/questions/47265768

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档