Python实现用networkx绘制MultiDiGraph

 更新时间:2024年02月02日 10:57:28   作者:EULE  
这篇文章主要介绍了Python实现用networkx绘制MultiDiGraph方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

networkx绘制MultiDiGraph

美赛作图需要,想表现两个节点之间的双向关系,但是网上关于MultiDiGraph的内容很少,翻出去查了一下多向图的画法

记录一下

import matplotlib.pyplot as plt
import networkx as nx
G = nx.MultiDiGraph()
#中间过程略
nx.draw(G,pos,connectionstyle='arc3, rad = 0.2',width=[float(v['weight']) for (r,c,v) in G.edges(data=True)])
#connectionstyle='arc3, rad = 0.2'arc控制双向,rad调线条弧度

最终效果

最终效果↑

画图部分完整的代码

```python
G = nx.MultiDiGraph()
row=np.array(['D1','D2','D3','D4','D5','F1','F2','F3','M1','M6','M3','M4','M5','G1'])
G.add_nodes_from(['D1','D2','D3','D4','D5','F1','F2','F3','M1','M6','M3','M4','M5','G1'])
value=np.array(count)
for j in range(0,14):
    for i in range(0,14):
        if i!=j:
            G.add_weighted_edges_from([(row[j],row[i],value[14*j+i])])#边的起点,终点,权重            
        else:
            pass
node_sizes = [44,22,29,20,35,11,32,20,41,22,57,10,11,20]
node_sizesnew=[]
for i in node_sizes:
    i=i*20
    node_sizesnew.append(i)  
pos={'D1':(37.29,77.42),'D2':(31.73,59.91),'D3':(40.47,27.53),'D4':(58.82,15.55),'D5':(46.29,89.65),'F1':(72,52),'F2':(61.64,45.73),'F3':(59.22,59.78),'G1':(11.64,49.73),'M1':(50.55,49.27),'M3':(46.56,56.18),'M4':(74.75,74.25),'M5':(58.25,46),'M6':(49.09,61.09)}
nx.draw_networkx_nodes(G,pos,node_size=node_sizesnew,alpha=0.4)
nx.draw_networkx_labels(G,pos,font_size=8,)
nx.draw(G,pos,edge_color='lightseagreen',alpha=0.5,connectionstyle='arc3, rad = 0.2',width=[float(v['weight']) for (r,c,v) in G.edges(data=True)])
edge_labels=dict([((u,v,),d['weight'])
             for u,v,d in G.edges(data=True)])
plt.savefig("D:/MATCH52.png",dpi=200, bbox_inches='tight')
show()
print('finish')

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Celery批量异步调用任务一直等待结果问题

    Celery批量异步调用任务一直等待结果问题

    这篇文章主要介绍了Celery批量异步调用任务一直等待结果问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • Python中pygame安装方法图文详解

    Python中pygame安装方法图文详解

    这篇文章主要介绍了Python中pygame安装方法,结合图文说明,较为详细的分析总结了Python中pygame的下载及安装调试详细步骤,需要的朋友可以参考下
    2015-11-11
  • Python中号称神仙的六个内置函数详解

    Python中号称神仙的六个内置函数详解

    这篇文章主要介绍了Python中号称神仙的六个内置函数,今天分享的这6个内置函数,在使用 Python 进行数据分析或者其他复杂的自动化任务时非常方便,需要的朋友可以参考下
    2022-05-05
  • Python实现鸡群算法的示例代码

    Python实现鸡群算法的示例代码

    鸡群算法,缩写为CSO(Chicken Swarm Optimization),尽管具备所谓仿生学的背景,但实质上是粒子群算法的一个变体。本文将利用Python语言实现这一算法,感兴趣的可以了解一下
    2022-11-11
  • Pickle模块中的dump()和load()方法简介

    Pickle模块中的dump()和load()方法简介

    Pickle模块实现了基本的数据序列化与反序列化操作,通过序列化操作,我们可以将程序中运行的对象信息转化为字节流保存到文件中去,永久存储在磁盘上,这篇文章主要介绍了Pickle模块中的dump()和load()方法介绍,需要的朋友可以参考下
    2023-03-03
  • python 多线程中join()的作用

    python 多线程中join()的作用

    这篇文章主要介绍了python 多线程中join()的作用,通过代码实践来加深对 join()的认识,帮助大家更好的理解和学习python 多线程,感兴趣的朋友可以了解下
    2020-10-10
  • 从零开始学习Python与BeautifulSoup网页数据抓取

    从零开始学习Python与BeautifulSoup网页数据抓取

    想要从零开始学习Python和BeautifulSoup网页数据抓取?本指南将为你提供简单易懂的指导,让你掌握这两个强大的工具,不管你是初学者还是有经验的开发者,本指南都能帮助你快速入门并提升技能,不要错过这个机会,开始你的编程之旅吧!
    2024-01-01
  • pycharm 2020.2.4 pip install Flask 报错 Error:Non-zero exit code的问题

    pycharm 2020.2.4 pip install Flask 报错 Error:Non-zero exit co

    这篇文章主要介绍了pycharm 2020.2.4 pip install Flask 报错 Error:Non-zero exit code,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-12-12
  • python taipy库轻松地将数据和机器学习模型转为功能性Web应用

    python taipy库轻松地将数据和机器学习模型转为功能性Web应用

    taipy 是一个开源的 Python 库,任何具有基本 Python 技能的人都可以使用,对于数据科学家、机器学习工程师和 Python 程序员来说,它是一个方便的工具,借助 Taipy,你可以轻松地将数据和机器学习模型转变为功能性的 Web 应用程序
    2024-01-01
  • pyftplib中文乱码问题解决方案

    pyftplib中文乱码问题解决方案

    这篇文章主要介绍了pyftplib中文乱码问题解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-01-01

最新评论