在Python中以单独显示所有边的方式绘制有向图

2023-12-24

我正在使用 Python 来模拟有向图上发生的过程。我想制作这个过程的动画。

我遇到的问题是大多数 Python 图形可视化库将成对的有向边组合成单个边。例如,NetworkX http://networkx.lanl.gov显示下图时仅绘制两条边,而我想分别显示四个边:

import networkx as nx
import matplotlib.pyplot as plt 

G = nx.MultiDiGraph()

G.add_edges_from([
    (1, 2),
    (2, 3),
    (3, 2),
    (2, 1),
])

plt.figure(figsize=(8,8))
nx.draw(G)

我想显示这样的内容,每个平行边单独绘制:

问题R中igraph中的R倒数边 https://stackoverflow.com/questions/5711540/r-reciprocal-edges-in-igraph-in-r似乎处理同样的问题,但解决方案是针对 R igraph 库的,而不是针对 Python 的。

有没有一种简单的方法可以使用现有的 Python 图形可视化库生成这种风格的绘图?如果它能支持多重图那就太好了。

我愿意接受调用外部程序来生成图像的解决方案。我想生成一系列的动画帧,因此解决方案必须是自动化的。


The Graphviz http://www.graphviz.org/工具似乎显示出明显的边缘。

例如,给出这个:

digraph G {
  A -> B;
  A -> B;
  A -> B;
  B -> C;

  B -> A;
  C -> B;
}

to dot产生:

Graphviz 的输入语言非常简单,因此您可以自己生成它,尽管搜索“python graphviz”确实会出现几个库,包括graphvizPyPI 上的模块 https://pypi.org/project/graphviz/.

这是使用 python 生成上面的图graphviz module:

from graphviz import Digraph

dot = Digraph()
dot.node('A', 'A')
dot.node('B', 'B')
dot.node('C', 'C')
dot.edges(['AB', 'AB', 'AB', 'BC', 'BA', 'CB'])

print(dot.source)
dot.render(view=True)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在Python中以单独显示所有边的方式绘制有向图 的相关文章

随机推荐

  • 使用java搜索文本并获取pdf中的位置

    如何使用 java 搜索文本并获取 pdf 中的位置 我尝试使用 apache pdfbox 和 pdfclown 但每当文本下降或开始新段落时 它都不起作用 我想得到与下图相同的结果 谢谢 期望的结果 https i stack imgu
  • 给定单词数组列表和用户输入。如何将他们映射到“家庭”?爪哇语

    我正在尝试使用 Java 和 TreeMaps 创建一个邪恶的刽子手游戏 我正在尝试找出如何将言语融入家庭中 我有一个 ArrayList 它只是一个单词列表和一个表示用户输入 猜测的字符串 由此 我必须创建它们生成的模式图以及与每个模式匹
  • 按大小压缩图像 - iPhone SDK

    我想压缩图像 相机 照片库 然后将其发送到服务器 我知道我可以按高度和宽度进行压缩 但我想按大小将图像压缩到固定大小 200 KB 并保留原始的高度和宽度 JPEGRepresentation中的比例因子并不代表大小 仅代表压缩质量 如何在
  • 如何在 Angular 项目中跟踪“EmptyError:序列中没有元素”错误

    我正在开发一个 Angular 项目 该项目抛出错误 core js 1350 ERROR Error Uncaught in promise EmptyError no elements in sequence但我似乎无法追踪到我的任何应
  • 对此 bash 脚本进行改进以模拟“tail --follow”

    我需要远程尾部日志文件 以便即使文件滚动 尾部也能继续工作 我尝试这样做 首先通过 ssh 直接使用 tail 命令 ssh root some remote host tail 1000f some directory applicati
  • 无法从 ngrx/store 取消订阅 ActionsSubject

    I use ngrx store实现从订阅商店获取日期的登录操作 登录组件是模态的 当我输入错误的密码时 我得到data type LOGIN FAILED 但是 当我关闭模式并重新打开它时 数据操作仍然是LOGIN FAILED代替INI
  • 为什么 Skaffold 在构建本地 docker 守护进程时要维护两个标签?

    询问于另一个问题 https stackoverflow com questions 65358738 is there any way to configure skaffold to build images on my local d
  • 文字控制模式的区别

    文字控制的直通模式和变换模式有什么区别 您也可以发布一个示例吗 有不同的文字模式Literal Mode 传递 控件的内容不被修改 Encode 控件的内容被转换为 HTML 编码的字符串 转换 不支持的标记语言元素将从控件的内容中删除 如
  • Wix Bootstrapper:Bootstrapper 事件序列

    我已经开始使用托管引导程序类和事件 简而言之 我添加了 Bootstrapper dll 它会给你命名空间 Microsoft Tools WindowsInstallerXml Bootstrapper 我能够从不同博客中提供的一些示例中
  • 如何禁用某些应用程序服务的动态 WebAPI

    我想关闭我的ABP项目中特定应用程序服务的自动WebAPI生成服务 RemoteService 属性可用于将类标记为远程服务或禁用本质上实现 IRemoteService 接口的特定类 RemoteService false public
  • 如何使用 FreeMarker 模板化嵌套 Pojo?

    我正在研究使用 FreeMarker 编写 EDI 文件 这些基本上是严格格式化 并经过验证 的电子发票 我决定从编写一个简单的示例开始 但一直坚持将其模板化为 嵌套 pojo 我的意思是一个 POJO 其中包含 POJO 其中这两个 PO
  • 是什么导致 Docker 映像中出现“无法找到数据收集器‘XPlat 代码覆盖率’”错误?

    我正在 DevOps Server 中设置一个构建 它只需运行 docker 构建 运行容器并从中收集测试结果 Dockerfile 使用 mcr microsoft com dotnet core sdk 2 2 映像作为其基础 在其上我
  • 通过 laravel 创建 stripe 计划

    我想从我的 stripe 应用程序创建一个计划 场景是用户被收取不同的价格作为定期付款 所以 这就是为什么我想为每个用户创建计划 我在用拉拉维尔 5并使用 laravel cashier 5 0 laravel cashier 只是没有内置
  • Eclipse Kepler JPA 错误

    我已经安装了 Eclipse Kepler 内部版本号 20130614 0229 当我尝试编译我的项目时 我遇到了大量与 JPA 相关的错误 我猜它们来自 Dali Java Persistence Tools 插件 我可以在插件列表中看
  • 实体框架 4 和同义词

    如果在数据库 A 中存在一个名为 MyTable 的表 该表实际上来自指向另一个数据库 B 的同义词 我可以在代表数据库 A 的实体框架模型中创建该表作为实体吗 因为它实际上驻留在在不同的数据库中 我很好奇 EF 4 的情况是否有所改善 h
  • 使用javascript查找字符串中最长的单词

    我试图找到字符串中最长的单词 但它不断返回第一个单词的长度 有任何想法吗 这是我的代码 function findLongestWord str var words str split var longest 0 for var i 0 i
  • 如何在 Angular 5 指令中使用 exportAs 来获取模板中的引用?

    我有以下指令 Directive selector changeColor exportAs changeColor export class ColorDirective constructor elem ElementRef rende
  • Android with Retrofit2 OkHttp3 - 多部分 POST 错误

    我在 Android 上使用 Retrofit2 和 OkHttp 进行 HTTP 请求 这里我正在做一个带有文档上传的 POST 请求 我遇到了以下错误 D OkHttp lt 500 Server Error http api driv
  • C# Regex.Match 大括号-仅内容? (不包括大括号)

    我一直无法找到答案 我可以使用Regex Matches方法只返回contents带有大括号的项目 如果我使用正则表达式 my MatchCollection值包括大括号 我想匹配 但只返回内容 这是我到目前为止所拥有的 Regex reg
  • 在Python中以单独显示所有边的方式绘制有向图

    我正在使用 Python 来模拟有向图上发生的过程 我想制作这个过程的动画 我遇到的问题是大多数 Python 图形可视化库将成对的有向边组合成单个边 例如 NetworkX http networkx lanl gov显示下图时仅绘制两条