利用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中使用glob和rmtree删除目录子目录及所有文件的例子
Nov 21 Python
python3使用urllib模块制作网络爬虫
Apr 08 Python
Android分包MultiDex策略详解
Oct 30 Python
详解Python开发中如何使用Hook技巧
Nov 01 Python
安装python时MySQLdb报错的问题描述及解决方法
Mar 20 Python
python打包压缩、读取指定目录下的指定类型文件
Apr 12 Python
Python常见数字运算操作实例小结
Mar 22 Python
python返回数组的索引实例
Nov 28 Python
如何用OpenCV -python3实现视频物体追踪
Dec 04 Python
python如何解析复杂sql,实现数据库和表的提取的实例剖析
May 15 Python
详解python爬取弹幕与数据分析
Nov 14 Python
Python趣味爬虫之用Python实现智慧校园一键评教
May 28 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 for 循环语句使用方法详细说明
2010/05/09 PHP
php 批量生成html,txt文件的实现代码
2013/06/26 PHP
帝国CMS留言板回复后发送EMAIL通知客户
2015/07/06 PHP
使用PHP生成图片的缩略图的方法
2015/08/18 PHP
老生常谈PHP面向对象之命令模式(必看篇)
2017/05/24 PHP
PHP For循环字母A-Z当超过26个字母时输出AA,AB,AC
2020/02/16 PHP
基于jquery的复制网页内容到WORD的实现代码
2011/02/16 Javascript
div拖拽插件——JQ.MoveBox.js(自制JQ插件)
2013/05/17 Javascript
如何动态的导入js文件具体该怎么实现
2014/01/14 Javascript
Extjs中RowExpander控件的默认展开问题示例探讨
2014/01/24 Javascript
JavaScript对象学习小结
2015/09/02 Javascript
jquery实现仿新浪微博带动画效果弹出层代码(可关闭、可拖动)
2015/10/12 Javascript
Bootstrap每天必学之导航
2015/11/26 Javascript
通过jquery-ui中的sortable来实现拖拽排序的简单实例
2016/05/24 Javascript
Bootstrap3使用typeahead插件实现自动补全功能
2016/07/07 Javascript
js中class的点击事件没有效果的解决方法
2016/10/13 Javascript
javascript构造函数以及原型对象的理解
2017/01/13 Javascript
原生javascript实现分页效果
2017/04/21 Javascript
CSS3+JavaScript实现翻页幻灯片效果
2017/06/28 Javascript
深入理解Node.js中通用基础设计模式
2017/09/19 Javascript
Angular6项目打包优化的实现方法
2019/12/15 Javascript
基于p5.js 2D图像接口的扩展(交互实现)
2020/11/30 Javascript
javascript实现拼图游戏
2021/01/29 Javascript
python中as用法实例分析
2015/04/30 Python
利用Python操作消息队列RabbitMQ的方法教程
2017/07/19 Python
pandas series序列转化为星期几的实例
2018/04/11 Python
基于pandas数据样本行列选取的方法
2018/04/20 Python
Python3爬虫学习入门教程
2018/12/11 Python
PyCharm 无法 import pandas 程序卡住的解决方式
2020/03/09 Python
Pycharm常用快捷键总结及配置方法
2020/11/14 Python
高中生自我评价个人范文
2013/11/09 职场文书
竞选班干部的演讲稿
2014/04/24 职场文书
物价局领导班子四风问题整改措施
2014/10/26 职场文书
交通事故一次性赔偿协议书范本
2014/11/02 职场文书
寻找最美乡村教师观后感
2015/06/18 职场文书
Java中Quartz高可用定时任务快速入门
2022/04/03 Java/Android