利用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 当前全局变量和入口参数的所有属性
Jul 01 Python
Python实现的井字棋(Tic Tac Toe)游戏示例
Jan 31 Python
python合并同类型excel表格的方法
Apr 01 Python
用TensorFlow实现戴明回归算法的示例
May 02 Python
TensorFlow Session会话控制&Variable变量详解
Jul 30 Python
解决yum对python依赖版本问题
Jul 05 Python
Python partial函数原理及用法解析
Dec 11 Python
对Pytorch中Tensor的各种池化操作解析
Jan 03 Python
Python3.x+迅雷x 自动下载高分电影的实现方法
Jan 12 Python
基于Python和PyYAML读取yaml配置文件数据
Jan 13 Python
解决jupyter notebook打不开无反应 浏览器未启动的问题
Apr 10 Python
Python学习之迭代器详解
Apr 01 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
关于页面优化和伪静态
2009/10/11 PHP
PHP SplObjectStorage使用实例
2015/05/12 PHP
CodeIgniter控制器之业务逻辑实例分析
2016/01/20 PHP
PHP 多任务秒级定时器的实现方法
2018/05/13 PHP
Yii2处理密码加密及验证的方法
2019/05/12 PHP
用js统计用户下载网页所需时间的脚本
2008/10/15 Javascript
一个js写的日历(代码部分网摘)
2009/09/20 Javascript
jquery实现图片上传之前预览的方法
2015/07/11 Javascript
基于JS实现EOS隐藏错误提示层代码
2016/04/25 Javascript
JS给swf传参数的实现方法
2016/09/13 Javascript
javascript实现的上下无缝滚动效果
2016/09/19 Javascript
javascript监听页面刷新和页面关闭事件方法详解
2017/01/09 Javascript
AngularJS实现select的ng-options功能示例
2017/07/12 Javascript
微信小程序实现顶部普通选项卡效果(非swiper)
2020/06/19 Javascript
Vue2.0+ElementUI实现表格翻页的实例
2017/10/23 Javascript
微信小程序中吸底按钮适配iPhone X方案
2017/11/29 Javascript
js实现简单模态框实例
2018/11/16 Javascript
记一次用vue做的活动页的方法步骤
2019/04/11 Javascript
详解如何提升JSON.stringify()的性能
2019/06/12 Javascript
解决python写的windows服务不能启动的问题
2014/04/15 Python
python 异常处理总结
2016/10/18 Python
高效测试用例组织算法pairwise之Python实现方法
2017/07/19 Python
Python数据抓取爬虫代理防封IP方法
2018/12/23 Python
python文件选择对话框的操作方法
2019/06/27 Python
python 计算平均平方误差(MSE)的实例
2019/06/29 Python
什么是托管函数?托管函数有什么用?
2014/06/15 面试题
专业毕业生个性的自我评价
2013/10/03 职场文书
美术专业个人自我评价
2014/01/18 职场文书
省级四好少年事迹材料
2014/01/25 职场文书
红色旅游心得体会
2014/09/03 职场文书
公司领导班子对照检查材料
2014/09/24 职场文书
2015教师年度考核评语
2015/03/25 职场文书
贫民窟的百万富翁观后感
2015/06/09 职场文书
2015年新农村建设指导员工作总结
2015/07/24 职场文书
JS监听Esc 键触发事键
2021/04/14 Javascript
Django分页器的用法你都了解吗
2021/05/26 Python