python networkx 根据图的权重画图实现

 更新时间:2019年07月10日 09:46:17   作者:CS青雀  
这篇文章主要介绍了python networkx 根据图的权重画图实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

首先输入边和边的权重,随后画出节点位置,根据权重大小划分实边和虚边

#coding:utf-8
#!/usr/bin/env python
"""
An example using Graph as a weighted network.
"""
__author__ = """Aric Hagberg (hagberg@lanl.gov)"""
try:
  import matplotlib.pyplot as plt
except:
  raise
 
import networkx as nx
 
G=nx.Graph()
#添加带权边
G.add_edge('a','b',weight=0.6)
G.add_edge('a','c',weight=0.2)
G.add_edge('c','d',weight=0.1)
G.add_edge('c','e',weight=0.7)
G.add_edge('c','f',weight=0.9)
G.add_edge('a','d',weight=0.3)
#按权重划分为重权值得边和轻权值的边
elarge=[(u,v) for (u,v,d) in G.edges(data=True) if d['weight'] >0.5]
esmall=[(u,v) for (u,v,d) in G.edges(data=True) if d['weight'] <=0.5]
#节点位置
pos=nx.spring_layout(G) # positions for all nodes
#首先画出节点位置
# nodes
nx.draw_networkx_nodes(G,pos,node_size=700)
#根据权重,实线为权值大的边,虚线为权值小的边
# edges
nx.draw_networkx_edges(G,pos,edgelist=elarge,
          width=6)
nx.draw_networkx_edges(G,pos,edgelist=esmall,
          width=6,alpha=0.5,edge_color='b',style='dashed')
 
# labels标签定义
nx.draw_networkx_labels(G,pos,font_size=20,font_family='sans-serif')
 
plt.axis('off')
plt.savefig("weighted_graph.png") # save as png
plt.show() # display

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Python中的引用和拷贝浅析

    Python中的引用和拷贝浅析

    这篇文章主要介绍了Python中的引用和拷贝浅析,本文同时讲解了深拷贝和浅拷贝、引用计数和垃圾回收等内容,需要的朋友可以参考下
    2014-11-11
  • 解决pycharm无法删除invalid interpreter(无效解析器)的问题

    解决pycharm无法删除invalid interpreter(无效解析器)的问题

    这篇文章主要介绍了pycharm无法删除invalid interpreter(无效解析器)的问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-07-07
  • python实现小世界网络生成

    python实现小世界网络生成

    今天小编就为大家分享一篇python实现小世界网络生成,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11
  • python实现用户登陆邮件通知的方法

    python实现用户登陆邮件通知的方法

    这篇文章主要介绍了python实现用户登陆邮件通知的方法,实例分析了Python计划任务与邮件发送的使用技巧,需要的朋友可以参考下
    2015-07-07
  • Flask中Cookie和Session理解与作用介绍

    Flask中Cookie和Session理解与作用介绍

    Flask是一个使用 Python 编写的轻量级 Web 应用框架。其 WSGI 工具箱采用 Werkzeug ,模板引擎则使用 Jinja2 。Flask使用 BSD 授权。Flask也被称为 “microframework” ,因为它使用简单的核心,用 extension 增加其他功能,Flask中Cookie和Session有什么区别呢
    2022-10-10
  • Python下opencv图像阈值处理的使用笔记

    Python下opencv图像阈值处理的使用笔记

    这篇文章主要介绍了Python下opencv图像阈值处理的使用笔记,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08
  • 告别网页搜索!教你用python实现一款属于自己的翻译词典软件

    告别网页搜索!教你用python实现一款属于自己的翻译词典软件

    教你用python做一款属于自己的翻译词典软件,从此告别网页搜索,文中有非常详细的代码示例,小伙伴们快快行动吧,需要的朋友可以参考下
    2021-06-06
  • python实现的批量分析xml标签中各个类别个数功能示例

    python实现的批量分析xml标签中各个类别个数功能示例

    这篇文章主要介绍了python实现的批量分析xml标签中各个类别个数功能,涉及Python针对xml文件的遍历、读取、解析等相关操作技巧,需要的朋友可以参考下
    2019-12-12
  • 详解在Python程序中使用Cookie的教程

    详解在Python程序中使用Cookie的教程

    这篇文章主要介绍了详解在Python程序中使用Cookie的教程,Cookie在无论哪种语言的网络编程学习当中都是重要的知识点,需要的朋友可以参考下
    2015-04-04
  • python操作CouchDB的方法

    python操作CouchDB的方法

    这篇文章主要介绍了python操作CouchDB的方法,包括了couchDb库安装、连接服务器、创建数据库、查询数据库、遍历数据库等常用的操作,非常具有实用价值,需要的朋友可以参考下
    2014-10-10

最新评论