利用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进阶教程之循环相关函数range、enumerate、zip
Aug 30 Python
利用一个简单的例子窥探CPython内核的运行机制
Mar 30 Python
Python json模块使用实例
Apr 11 Python
Python实现的json文件读取及中文乱码显示问题解决方法
Aug 06 Python
解决python opencv无法显示图片的问题
Oct 28 Python
对python pandas读取剪贴板内容的方法详解
Jan 24 Python
Python3实现的简单三级菜单功能示例
Mar 12 Python
Python修改列表值问题解决方案
Mar 06 Python
opencv 图像轮廓的实现示例
Jul 08 Python
pandas apply多线程实现代码
Aug 17 Python
python的setattr函数实例用法
Dec 16 Python
撤回我也能看到!教你用Python制作微信防撤回脚本
Jun 11 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脚本[带参数]的方法
2010/01/22 PHP
file_get_contents获取不到网页内容的解决方法
2013/03/07 PHP
解析dedecms空间迁移步骤详解
2013/05/15 PHP
用php来限制每个ip每天浏览页面数量的实现思路
2015/02/24 PHP
Ubuntu中启用php的mail()函数并解决发送邮件速度慢问题
2015/03/27 PHP
将PHP的session数据存储到数据库中的代码实例
2016/06/24 PHP
Avengerls vs KG BO3 第一场2.18
2021/03/10 DOTA
JavaScript修改css样式style
2008/04/15 Javascript
javascript 二进制运算技巧解析
2012/11/27 Javascript
自动刷新网页,自动刷新当前页面,JS调用
2013/06/24 Javascript
Node.js插件的正确编写方式
2014/08/03 Javascript
深入理解JavaScript系列(26):设计模式之构造函数模式详解
2015/03/03 Javascript
Bootstrap Metronic完全响应式管理模板之菜单栏学习笔记
2016/07/08 Javascript
如何编写jquery插件
2017/03/29 jQuery
prototype.js简单实现ajax功能示例
2017/10/18 Javascript
vue toggle做一个点击切换class(实例讲解)
2018/03/13 Javascript
Angular使用动态加载组件方法实现Dialog的示例
2018/05/11 Javascript
JavaScript树的深度优先遍历和广度优先遍历算法示例
2018/07/30 Javascript
微信小程序的mpvue框架快速上手指南
2019/05/15 Javascript
浅入深出Vue之自动化路由
2019/08/06 Javascript
JavaScript实现栈结构Stack过程详解
2020/03/07 Javascript
python实现的生成随机迷宫算法核心代码分享(含游戏完整代码)
2014/07/11 Python
django项目简单调取百度翻译接口的方法
2019/08/06 Python
tensorflow 实现从checkpoint中获取graph信息
2020/02/10 Python
keras处理欠拟合和过拟合的实例讲解
2020/05/25 Python
用Python爬取LOL所有的英雄信息以及英雄皮肤的示例代码
2020/07/13 Python
建筑班组长岗位职责
2014/01/02 职场文书
拒绝黄毒毒宣传标语
2014/06/26 职场文书
班主任与学生安全责任书
2014/07/25 职场文书
贷款委托书
2014/08/01 职场文书
最美孝心少年事迹材料
2014/08/15 职场文书
快递员岗位职责
2014/09/12 职场文书
县委班子四风对照检查材料思想汇报
2014/09/29 职场文书
大学生党员批评与自我批评范文
2014/10/14 职场文书
大学生暑期实践报告之企业经营管理
2019/08/08 职场文书
MySQL之PXC集群搭建的方法步骤
2021/05/25 MySQL