利用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 修改文件指定行的方法
May 15 Python
Python使用urllib2获取网络资源实例讲解
Dec 02 Python
python爬虫入门教程--利用requests构建知乎API(三)
May 25 Python
python pandas cumsum求累计次数的用法
Jul 29 Python
基于django ManyToMany 使用的注意事项详解
Aug 09 Python
python实现指定ip端口扫描方式
Dec 17 Python
Python实现井字棋小游戏
Mar 09 Python
Django 后台带有字典的列表数据与页面js交互实例
Apr 03 Python
解决Python paramiko 模块远程执行ssh 命令 nohup 不生效的问题
Jul 14 Python
如何基于pandas读取csv后合并两个股票
Sep 25 Python
python 实现的IP 存活扫描脚本
Dec 10 Python
django中ImageField的使用详解
Dec 21 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
2019年中国咖啡业现状与发展趋势
2021/03/04 咖啡文化
php入门学习知识点七 PHP函数的基本应用
2011/07/14 PHP
基于flush()不能按顺序输出时的解决办法
2013/06/29 PHP
php保存任意网络图片到服务器的方法
2015/04/14 PHP
PHP实现的基于单向链表解决约瑟夫环问题示例
2017/09/30 PHP
javascript 鼠标滚轮事件
2009/04/09 Javascript
JavaScript 对象成员的可见性说明
2009/10/16 Javascript
JS实现标签页效果(配合css)
2013/04/03 Javascript
js使用removeChild方法动态删除div元素
2014/08/01 Javascript
JavaScript的arguments对象应用示例
2014/09/15 Javascript
基于jQuery实现仿百度首页换肤背景图片切换代码
2015/08/25 Javascript
zTree插件下拉树使用入门教程
2016/04/11 Javascript
JS Canvas定时器模拟动态加载动画
2016/09/17 Javascript
jQuery联动日历的实例解析
2016/12/02 Javascript
原生JS+Canvas实现五子棋游戏
2020/05/28 Javascript
vue+webpack 打包文件 404 页面空白的解决方法
2018/02/28 Javascript
微信小程序有旋转动画效果的音乐组件实例代码
2018/08/22 Javascript
vue实现倒计时获取验证码效果
2020/04/17 Javascript
微信小程序中使用 async/await的方法实例分析
2020/05/06 Javascript
[02:35]DOTA2英雄基础教程 末日使者
2013/12/04 DOTA
Python中的ctime()方法使用教程
2015/05/22 Python
python实现隐马尔科夫模型HMM
2018/03/25 Python
Python中的枚举类型示例介绍
2019/01/09 Python
Python提取频域特征知识点浅析
2019/03/04 Python
python实现对服务器脚本敏感信息的加密解密功能
2019/08/13 Python
Python实现TCP通信的示例代码
2019/09/09 Python
使用卷积神经网络(CNN)做人脸识别的示例代码
2020/03/27 Python
STP的判定过程
2012/10/01 面试题
在对linux系统分区进行格式化时需要对磁盘簇(或i节点密度)的大小进行选择,请说明选择的原则
2012/11/24 面试题
某公司部分笔试题
2013/11/05 面试题
岗位竞聘演讲稿范文
2014/04/24 职场文书
机关党员公开承诺书
2014/08/30 职场文书
胡雪岩故居导游词
2015/02/06 职场文书
销售合作意向书范本
2015/05/08 职场文书
高一地理教学工作总结
2015/08/12 职场文书
Vertica集成Apache Hudi重磅使用指南
2022/03/31 Servers