利用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 06 Python
Python回调函数用法实例详解
Jul 02 Python
Python中字符串的处理技巧分享
Sep 17 Python
教你用Python脚本快速为iOS10生成图标和截屏
Sep 22 Python
Python编写Windows Service服务程序
Jan 04 Python
python中字符串变二维数组的实例讲解
Apr 03 Python
python写入已存在的excel数据实例
May 03 Python
Python3.5文件修改操作实例分析
May 01 Python
python中列表的切片与修改知识点总结
Jul 23 Python
Python如何使用函数做字典的值
Nov 30 Python
Python使用循环神经网络解决文本分类问题的方法详解
Jan 16 Python
Python+OpenCV图像处理——图像二值化的实现
Oct 24 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
PHP内核介绍及扩展开发指南―基础知识
2011/09/11 PHP
遍历指定目录下的所有目录和文件的php代码
2011/11/27 PHP
thinkPHP5框架分页样式类完整示例
2018/09/01 PHP
JsEasy简介 JsEasy是什么?与下载
2007/03/07 Javascript
Javascript解决常见浏览器兼容问题的12种方法
2010/01/04 Javascript
jqGrid日期格式的判断示例代码(开始日期与结束日期)
2013/11/08 Javascript
jquery ajax中使用jsonp的限制解决方法
2013/11/22 Javascript
jquery实现漂亮的二级下拉菜单代码
2015/08/26 Javascript
JS实现不使用图片仿Windows右键菜单效果代码
2015/10/22 Javascript
jQuery控制li上下循环滚动插件用法实例(附demo源码下载)
2016/05/28 Javascript
domReady的实现案例
2016/11/23 Javascript
Jquery树插件zTree实现菜单树
2017/01/24 Javascript
javascript 面向对象function详解及实例代码
2017/02/28 Javascript
ES5学习教程之Array对象
2017/04/01 Javascript
元素全屏的设置与监听实例
2017/11/28 Javascript
python实现获取客户机上指定文件并传输到服务器的方法
2015/03/16 Python
详解Python中的Numpy、SciPy、MatPlotLib安装与配置
2017/11/17 Python
python单例模式获取IP代理的方法详解
2018/09/13 Python
详解python数据结构和算法
2019/04/18 Python
Python中@property的理解和使用示例
2019/06/11 Python
详解Anconda环境下载python包的教程(图形界面+命令行+pycharm安装)
2019/11/11 Python
django的autoreload机制实现
2020/06/03 Python
Python爬虫新手入门之初学lxml库
2020/12/20 Python
css3media响应式布局实例
2016/07/08 HTML / CSS
奥地利顶级内衣丝袜品牌英国站:Wolford英国
2016/08/29 全球购物
结构和类有什么异同
2012/07/16 面试题
逻辑链路控制协议
2016/10/01 面试题
node中使用shell脚本的方法步骤
2021/03/23 Javascript
药学专业毕业生求职信
2013/10/20 职场文书
清华大学自主招生自荐信
2014/01/29 职场文书
2014年秋季开学典礼主持词
2014/08/02 职场文书
民政局个人整改措施
2014/09/24 职场文书
幼儿园安全教育随笔
2015/08/14 职场文书
初中政治教学反思
2016/02/23 职场文书
MongoDB修改oplog大小的四种方法
2022/04/11 MongoDB
Windows Server 2008 修改远程登录端口以及配置防火墙
2022/04/28 Servers