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')

总结

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

相关文章

  • Python shutil模块文件和目录操作示例详解

    Python shutil模块文件和目录操作示例详解

    本文将会学习到 shutil 模块,包括其主要功能和示例代码,以帮助你更好地理解如何使用它来处理文件和目录
    2023-11-11
  • Python异常对代码运行性能的影响实例解析

    Python异常对代码运行性能的影响实例解析

    这篇文章主要介绍了Python异常对代码运行性能的影响实例解析,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
    2018-02-02
  • python Task在协程调用实例讲解

    python Task在协程调用实例讲解

    在本篇文章里小编给大家整理了一篇关于python Task如何在协程调用的相关内容,有兴趣的朋友们可以参考下。
    2021-04-04
  • 修复Python缩进错误的方法实现

    修复Python缩进错误的方法实现

    在Python中,缩进是非常重要的,因为它决定了代码块的层次结构,本文主要介绍了修复Python缩进错误的方法实现,具有一定的参考价值,感兴趣的可以了解一下
    2023-11-11
  • Django使用unittest模块进行单元测试过程解析

    Django使用unittest模块进行单元测试过程解析

    这篇文章主要介绍了Django使用unittest模块进行单元测试过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-08-08
  • 解决使用Pandas 读取超过65536行的Excel文件问题

    解决使用Pandas 读取超过65536行的Excel文件问题

    这篇文章主要介绍了解决使用Pandas 读取超过65536行的Excel文件问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • Python 中的 XML 转换利器xml2dict详解

    Python 中的 XML 转换利器xml2dict详解

    xml2dict是一个Python库,可以将XML数据转换为字典,也支持反向转换,它简化了XML的处理,使之像处理JSON一样简单,适用于Web服务数据交换、配置文件读取等场景,安装简单,使用方便,还可以通过自定义转换器处理XML属性和命名空间
    2024-10-10
  • python类属性学习深入讲解

    python类属性学习深入讲解

    这篇文章主要介绍了python类属性学习深入讲解,文中对于python的类属性的理解有正在学习python的同学可以一块学习下
    2021-03-03
  • Python中DataFrame判断两列数据是否相等的方法

    Python中DataFrame判断两列数据是否相等的方法

    本文主要介绍了DataFrame判断两列数据是否相等的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • Python爬虫实现的根据分类爬取豆瓣电影信息功能示例

    Python爬虫实现的根据分类爬取豆瓣电影信息功能示例

    这篇文章主要介绍了Python爬虫实现的根据分类爬取豆瓣电影信息功能,结合完整实例形式分析了Python针对电影信息分类抓取的相关实现技巧,需要的朋友可以参考下
    2019-09-09

最新评论