利用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列表生成器的循环技巧分享
Mar 06 Python
Flask入门教程实例:搭建一个静态博客
Mar 27 Python
让python在hadoop上跑起来
Jan 27 Python
Python判断变量是否为Json格式的字符串示例
May 03 Python
matplotlib 输出保存指定尺寸的图片方法
May 24 Python
Python 类的特殊成员解析
Jun 20 Python
Django CSRF跨站请求伪造防护过程解析
Jul 31 Python
Flask使用Pyecharts在单个页面展示多个图表的方法
Aug 05 Python
Python使用字典实现的简单记事本功能示例
Aug 15 Python
Python爬虫运用正则表达式的方法和优缺点
Aug 25 Python
Django-imagekit的使用详解
Jul 06 Python
matplotlib基础绘图命令之errorbar的使用
Aug 13 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 ftp文件上传函数(基础版)
2010/06/03 PHP
ThinkPHP单字母函数(快捷方法)使用总结
2014/07/23 PHP
如何实现php图片等比例缩放
2015/07/28 PHP
基于PHP微信红包的算法探讨
2016/07/21 PHP
在 Laravel 6 中缓存数据库查询结果的方法
2019/12/11 PHP
prototype1.4中文手册
2006/09/22 Javascript
从javascript语言本身谈项目实战
2006/12/27 Javascript
JavaScript高级程序设计 学习笔记 js高级技巧
2011/09/20 Javascript
javascript跑马灯悬停放大效果实现代码
2012/12/12 Javascript
通过JS动态创建一个html DOM元素并显示
2014/10/15 Javascript
javascript根据时间生成m位随机数最大13位
2014/10/30 Javascript
12个超实用的JQuery代码片段
2015/11/02 Javascript
jQuery选择器基础入门教程
2016/05/10 Javascript
JS简单去除数组中重复项的方法
2016/09/13 Javascript
原生js实现节日时间倒计时功能
2017/01/18 Javascript
bootstrap为水平排列的表单和内联表单设置可选的图标
2017/02/15 Javascript
JavaScript 中 apply 、call 的详解
2017/03/21 Javascript
详解weex默认webpack.config.js改造
2018/01/08 Javascript
vue+axios+mock.js环境搭建的方法步骤
2018/08/28 Javascript
微信小程序学习笔记之文件上传、下载操作图文详解
2019/03/29 Javascript
通过layer实现可输入的模态框的例子
2019/09/27 Javascript
[01:34]DAC2018主赛事第四日五佳镜头 Gh巨牙海民助Miracle-死里逃生
2018/04/07 DOTA
Python中random模块用法实例分析
2015/05/19 Python
python爬虫模拟浏览器访问-User-Agent过程解析
2019/12/28 Python
利用HTML5实现使用按钮控制背景音乐开关
2015/09/21 HTML / CSS
美国婚礼礼品网站:MyWeddingFavors
2018/09/26 全球购物
简单叙述一下MYSQL的优化
2016/05/09 面试题
校长就职演讲稿
2014/01/06 职场文书
个人求职信范例
2014/01/29 职场文书
学校地质灾害防治方案
2014/06/10 职场文书
物业客服专员岗位职责
2015/04/07 职场文书
盗窃罪辩护词范文
2015/05/21 职场文书
法定代表人身份证明书
2015/06/18 职场文书
学生会主席任命书
2015/09/21 职场文书
社区结对共建协议书
2016/03/23 职场文书
SpringBoot整合Redis入门之缓存数据的方法
2021/11/17 Redis