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对excel文档去重及求和的实例

    python对excel文档去重及求和的实例

    下面小编就为大家分享一篇python对excel文档去重及求和的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • pyhton学习与数据挖掘self原理及应用分析

    pyhton学习与数据挖掘self原理及应用分析

    这篇文章主要为大家介绍了深入分析pyhton中的self原理及应用,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步早日升职加薪
    2021-11-11
  • PYTHON压平嵌套列表的简单实现

    PYTHON压平嵌套列表的简单实现

    下面小编就为大家带来一篇PYTHON压平嵌套列表的简单实现。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-06-06
  • Python实现IP代理批量采集的示例代码

    Python实现IP代理批量采集的示例代码

    这篇文章主要为大家详细介绍了如何利用Python实现IP代理批量采集,并检测代理是否可用。文中的示例代码讲解详细,需要的可以参考一下
    2022-09-09
  • Python通过属性手段实现只允许调用一次的示例讲解

    Python通过属性手段实现只允许调用一次的示例讲解

    下面小编就为大家分享一篇Python通过属性手段实现只允许调用一次的示例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-04-04
  • python读取.mat文件的数据及实例代码

    python读取.mat文件的数据及实例代码

    这篇文章主要介绍了python读取.mat文件的数据的方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值 ,需要的朋友可以参考下
    2019-07-07
  • 超好玩的"隔空操物"通过Python MediaPipe库实现

    超好玩的"隔空操物"通过Python MediaPipe库实现

    这篇文章主要介绍了python+mediapipe+opencv实现手部关键点检测功能(手势识别),本文仅仅简单介绍了mediapipe的使用,而mediapipe提供了大量关于图像识别等的方法,需要的朋友可以参考下
    2022-01-01
  • Python中__init__的用法和理解示例详解

    Python中__init__的用法和理解示例详解

    在Python中定义类经常会用到__init__函数(方法),首先需要理解的是,两个下划线开头的函数是声明该属性为私有,不能在类的外部被使用或访问,从文字理解比较困难,下面通过示例代码帮助大家理解__init__在python中用法,感兴趣的朋友一起看看吧
    2023-02-02
  • Python 异步如何使用等待有时间限制协程

    Python 异步如何使用等待有时间限制协程

    这篇文章主要为大家介绍了Python 异步如何使用等待有时间限制协程示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • 使用python远程操作linux过程解析

    使用python远程操作linux过程解析

    这篇文章主要介绍了使用python远程操作linux过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12

最新评论