利用Python绘制Jazz网络图的例子
最近在进行社交网络的学习,想利用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:运行结果
5:总结
以上只是简单的将Jazz网络及关系绘制出来,并没有进行深入的分析,如果有不对的地方,还希望大家批评指正。
相关文章
TensorFlow Session会话控制&Variable变量详解
今天小编就为大家分享一篇TensorFlow Session会话控制&Variable变量详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2018-07-07一文教会你用nginx+uwsgi部署自己的django项目
uWSGI是一个Web服务器,它实现了WSGI协议、uwsgi、http等协议,下面这篇文章主要给大家介绍了关于用nginx+uwsgi部署自己的django项目的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下2022-08-08Python实现PowerPoint演示文稿到图片的批量转换
PowerPoint演示文稿作为展示创意、分享知识和表达观点的重要工具,被广泛应用于教育、商务汇报及个人项目展示等领域,用Python代码可以高效地实现PowerPoint演示文稿到图片的批量转换,从而提升工作效率,文本将介绍如何使用Python实现PowerPoint演示文稿到图片的转换2024-06-06Python实现读取大量Excel文件并跨文件批量计算平均值
这篇文章主要为大家详细介绍了如何利用Python语言,实现对多个不同Excel文件进行数据读取与平均值计算的方法,感兴趣的可以了解一下2023-02-02
最新评论