利用Python绘制Jazz网络图的例子


Posted in Python onNovember 21, 2019

最近在进行社交网络的学习,想利用Python来进行分析,但是网上关于这方面的资料好像很少,所以自己进行了一点研究,算是有一点点进步,现在将自己的成果发出来,希望这方面感兴趣的同学也可以快速入门。话不多说,让我们开始吧~

1:环境准备

首先,就是python以及一些插件的安装,比如我们要用到numpy(为Python提供了真正的数组功能,好多库都依赖它,优先安装,安装教程百度一下,你就知道~),matplotlib(最著名的的绘图库,主要用于二维绘图,也可以进行简单的三维绘图),networkx(是一个用Python语言开发的图论与复杂网络建模工具,内置了常用的图与复杂网络分析算法,可以方便的进行复杂网络数据分析、仿真建模等工作),以上就是编程的准备工作。

2:获取数据

环境准备好了之后,就需要获得数据,本文中的数据是Jazz网络:该网络为爵士音乐人合作网络,网络中的节点代表音乐人,节点之间的链接代表音乐人之间的合作关系。

*Vertices  198
*Arcs
*Edges
  1  8   1
  1  24  1
  1  35  1
  1  42  1

第一行数据代表:第一个音乐人与第八个音乐人之间有一个合作关系,第三列的1为具有合作关系,以此类推。

3:开始开始编程

import networkx as nx
import matplotlib.pyplot as plt
import numpy as np
import re
 
#读取txt文件数据,有多个空格间隔
G=nx.Graph()
filename = r'D:\MyDocuments\jazz.txt'
node_list = []
lnum = 0
with open(filename, 'r') as file_to_read:
 while True:
  lines = file_to_read.readline() # 整行读取数据
  if not lines:
   break
   pass
  lnum += 1
  #从第四行开始处理数据
  if lnum>=4:
   #对多的空格进行处理
   temp = ' '.join(re.split(' +|\n+', lines)).strip()
   line=re.split(' ',temp.strip())
   #获得第一个节点
   first_node = line[0]
   #获得第二个节点
   second_node = line[1]
   node_list.append(np.append(first_node,second_node))   
  pass
for i in range(len(node_list)):
 G.add_edge(node_list[i][0],node_list[i][1])
nx.draw(G)
plt.show()#显示图形

4:运行结果

利用Python绘制Jazz网络图的例子

5:总结

以上只是简单的将Jazz网络及关系绘制出来,并没有进行深入的分析,如果有不对的地方,还希望大家批评指正。

Python 相关文章推荐
Python实现备份文件实例
Sep 16 Python
在Python的Flask框架下收发电子邮件的教程
Apr 21 Python
Python sys.argv用法实例
May 28 Python
python 实现对文件夹内的文件排序编号
Apr 12 Python
使用python3+xlrd解析Excel的实例
May 04 Python
使用python的pandas库读取csv文件保存至mysql数据库
Aug 20 Python
python dlib人脸识别代码实例
Apr 04 Python
python 梯度法求解函数极值的实例
Jul 10 Python
Python 使用matplotlib模块模拟掷骰子
Aug 08 Python
浅谈Python3实现两个矩形的交并比(IoU)
Jan 18 Python
使用Django和Postgres进行全文搜索的实例代码
Feb 13 Python
Python还能这么玩之用Python做个小游戏的外挂
Jun 04 Python
Python TCP通信客户端服务端代码实例
Nov 21 #Python
python绘制随机网络图形示例
Nov 21 #Python
python绘制BA无标度网络示例代码
Nov 21 #Python
Python之指数与E记法的区别详解
Nov 21 #Python
python构建指数平滑预测模型示例
Nov 21 #Python
python实现画出e指数函数的图像
Nov 21 #Python
如何获取Python简单for循环索引
Nov 21 #Python
You might like
利用中国天气预报接口实现简单天气预报
2014/01/20 PHP
PHP中的命名空间相关概念浅析
2015/01/22 PHP
php数组键值用法实例分析
2015/02/27 PHP
PHP中异常处理的一些方法整理
2015/07/03 PHP
PHP屏蔽关键字实现方法
2016/11/17 PHP
Yii2框架可逆加密简单实现方法
2017/08/25 PHP
PHP ADODB实现事务处理功能示例
2018/05/25 PHP
PHP模型Model类封装数据库操作示例
2019/03/14 PHP
Laravel中9个不经常用的小技巧汇总
2019/04/16 PHP
一个js实现的所谓的滑动门
2007/05/23 Javascript
通过隐藏option实现select的联动效果
2009/11/10 Javascript
jquery html动态生成select标签出问题的解决方法
2013/11/20 Javascript
js单词形式的运算符
2014/05/06 Javascript
javascript常用功能汇总
2015/07/05 Javascript
js操作cookie保存浏览记录的方法
2015/12/25 Javascript
常用原生js自定义函数总结
2016/11/20 Javascript
Angularjs之如何在跨域请求中传输Cookie的方法
2018/06/01 Javascript
vue watch普通监听和深度监听实例详解(数组和对象)
2018/08/16 Javascript
vue-cli脚手架搭建的项目去除eslint验证的方法
2018/09/29 Javascript
linux系统使用python监测网络接口获取网络的输入输出
2014/01/15 Python
详细解读Python中的__init__()方法
2015/05/02 Python
Python查找两个有序列表中位数的方法【基于归并算法】
2018/04/20 Python
pandas将numpy数组写入到csv的实例
2018/07/04 Python
Python元组知识点总结
2019/02/18 Python
Python Datetime模块和Calendar模块用法实例分析
2019/04/15 Python
Django RBAC权限管理设计过程详解
2019/08/06 Python
HTML5 拖拽批量上传文件的示例代码
2018/03/28 HTML / CSS
Stuart Weitzman欧盟:美国奢华鞋履品牌
2017/05/24 全球购物
中国跨境电子商务网站:NewFrog
2018/03/10 全球购物
美国快时尚彩妆品牌:Winky Lux(透明花瓣润唇膏)
2018/11/06 全球购物
学生检讨书范文
2019/06/24 职场文书
导游词之澳门玫瑰圣母堂
2019/12/03 职场文书
golang 实现时间戳和时间的转化
2021/05/07 Golang
mysql 直接拷贝data 目录下文件还原数据的实现
2021/07/25 MySQL
Win11怎么添加用户?Win11添加用户账户的方法
2022/07/15 数码科技
Redis实战之Lettuce的使用技巧详解
2022/12/24 Redis