微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Networkx 和 Matplotlib 问题:不打印自循环 2.5.12.6rc1.dev0

如何解决Networkx 和 Matplotlib 问题:不打印自循环 2.5.12.6rc1.dev0

我已经尝试使用 matplotlib 在节点上绘制具有多个自循环的 networkx 多向图好几天了,但没有任何效果。 经过多次测试,我用 Matplotlib 将问题缩小到 Networkx。 我执行了以下教程 https://networkx.org/documentation/latest/auto_examples/drawing/plot_selfloops.html 在我的笔记本电脑上并使用在线 python 编译器,但没有打印自循环。我认为某处可能存在错误,因为它应该根据官方文档工作。

请不要建议使用Graphviz...我已经使用过,但它与我想要的不符。

当前行为 从教程中,这是我获得的图像:

预期行为 我应该获得的图像:

enter image description here

我的环境: Python版本:3 NetworkX 版本:2.5(我升级了)

谢谢!

解决方法

您链接的示例在评论中提到了 2.6

从 2.6 版本开始,默认情况下会以与其他边相同的样式绘制自环

我检查了开发版本会发生什么,我得到了正确的情节,所以这看起来可能是一个新功能。如果您现在需要它,那么您可能必须从 GitHub 安装开发版本。示例图如下。

2.5.1

enter image description here

2.6rc1.dev0

enter image description here

,

问题链接到的 networkx 文档页面适用于 networkx最新版本,即尚未发布的开发版本。

模块中提到了自循环:https://github.com/networkx/networkx/blob/d70b314b37168f0ea7c5b0d7f9ff61d73232747b/networkx/drawing/nx_pylab.py#L697-L704 在分支 main 上。

在分支 v2.5 的同一模块中没有提到自循环: https://github.com/networkx/networkx/blob/36383ccc94a2e2d50893e13bb2a3ec96e5f6518f/networkx/drawing/nx_pylab.py

因此似乎已添加使用 matplotlib 绘制自循环以在 networkx >= 2.6 中发布。最新的稳定版本 networkx == 2.5.1 给出了与问题相同的结果(即不存在自循环)。

确实,问题中链接的 networkx 文档页面就是一个示例,其文件是在 networkx == 2.5 发布之后(并且在 networkx == 2.5.1 发布之前,尽管后者似乎有源自除 main 之外的另一个分支):https://github.com/networkx/networkx/commit/6108e42fa70fec2d1af0f177bf5518d6b60981d6#diff-27445a1ef749e821a838e843aee62f8fbde8c0cfdfde0717c73eb3355f8d7a77 相关的拉取请求是: https://github.com/networkx/networkx/pull/4430

稳定版本的文档中不存在此示例:https://networkx.org/documentation/stable/auto_examples/index.html#drawing


要使用 networkx 绘制自循环,请安装开发版本。一种方法是使用 git 克隆存储库 https://github.com/networkx/networkx,然后按照以下安装说明进行操作: https://github.com/networkx/networkx/blob/main/INSTALL.rst#install-the-development-version

也可以使用 networkx 的 GitHub 存储库主页上的“代码”按钮(靠近“关于”描述),或直接从以下 URL 下载,而不是克隆: https://github.com/networkx/networkx/archive/refs/heads/main.zip(来自浏览器,或使用其他程序,例如 cURL)。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。