从零开始学Python数据分析与挖掘,python学习路线图
利用网络x计算社会网络中的各指标,包括中介中心度,邻近中心度、和度中心度。代码都是参考附录中的参考链接,经过修改之后包含数据的导入、建网络、画图、计算中心性指标,并且讲计算的中心性指标数据导出到超过表中。复杂的代码基本删除了,就不一一介绍了,直接附代码。
一、数据准备节点表导入了战斗支援车文件(节点测试。csv)边表导入了文本文件(文本文件)文件(2007 edge.txt)
二、导入csv、txt文件代码如下:
将带有打开( node test.csv , rt )的战斗支援车导入为csvfile:reader=csv .dict reader(CSV文件)column=[row[ id ]for row in reader]print(column)edge=[]with open( 2007 edge。txt , r )as f:data=f . readlines()for line in data:# print(line)line=tuple(line。替换( \ r , ).替换( \n , ).替换( \t , ).分割(,))边缘。追加(行)打印(边缘)三、画网络图代码如下:
将网络x作为(同nonexpendable)非消耗品导入matplotlib.pyplot作为pltG=nx .di图()G . add _ nodes _ from(列)G . add _ weighted _ edges _ from(edge)NX。draw _ networkx(G,pos=nx.spring_layout(G),node_size=20,node_shape=o ,width=1,style=solid ,font _ size=8)PLT。show()# print(G . nodes())四、计算中心度代码如下:
###计算统计指标#计算中介中心度print( between ness centrality )b=NX。between ness _ centrality(G)for v in G . nodes():# print( % s % 0.6r %(v,b[v])) # %s字符串,%0.6r浮点数子6位print(v,b[v])#计算度中心度print( Degree centrality )d=NX Degree _ centrality(G)for v in G . nodes():print(v,d[v])#计算紧密中心度print(闭包中心性)c=NX。G . nodes()中v的closure _ centrality(G):print(v,c[v])五、中心度指标导出到超过表中代码如下:
导入xlwt ##导出到超过表格中#创建工作簿,相当于创建Excelxls=xlwt .工作簿(编码=utf-8)#创建纸张,纸张一为表的名字,单元格_覆盖_确定为是否覆盖单元格sheet=xls.add_sheet(sheet1 ,cell_overwrite_ok=True)#创建的文件夹,用来写入处理后的数据file= D:\ data \ python \ py 2021815 \ data 2017。xls #向表中添加数据sheet.write(0,0, id )中间中心性)sheet.write(0,2,度中心性)sheet.write(0,3,接近中心性)对于g . nodes():sheet中的v,m=1。写(m,0,v) sheet .写(m,1,b[v]) sheet .写(m,2,d[v]) sheet .写(m,3,c[v]) m=m 1#保存到超过中xls.save(文件)注意:文件保存路径和表格命名都不要使用数字开头。
六。完整代码代码如下:
将networkx作为NX导入matplotlib。py绘图为pltimport CSV导入xlwt,带开放(节点测试。CSV , rt )作为csvfile:reader=csv .dict reader(CSV文件)column=[row[ id ]for row in reader]# print(column)edge=[]with open( 2007 edge。txt , r )as f:data=f . readlines()for line in data:# print(line)line=tuple(line。替换( \ r , ).替换( \n , ).替换( \t , ).分割(,))边缘。append(line)# print(edge)G=NX .di图()G . add _ nodes _ from(列)G . add _ weighted _ edges _ from(edge)NX。draw _ networkx(G,pos=nx.spring_layout(G),node_size=20,node_shape=o ,width=1,style=solid ,font _ size=8)PLT。show()# print(G . nodes())# #计算统计指标#计算中介中心度print( between ness centrality )b=NX。between ness _ centrality(G)for v in G . nodes():# print( % s % 0.6r %(v,b[v])) # %s字符串,%0.6r浮点数子6位print(v,b[v])#计算度中心度print( Degree centrality )d=NX Degree _ centrality(G)for v in G . nodes():print(v,d[v])#计算紧密中心度print(闭包中心性)c=NX。closure _ centrality(G)for v in G . nodes():print(v,c[v]) ##导出到超过表格中#创建工作簿,相当于创建Excelxls=xlwt .工作簿(编码=utf-8)#创建纸张,纸张一为表的名字,单元格_覆盖_确定为是否覆盖单元格sheet=xls.add_sheet(sheet1 ,cell_overwrite_ok=True)#创建的文件夹,用来写入处理后的数据file= D:\ data \ python \ py 2021815 \ data 2017。xls #向表中添加数据sheet.write(0,0, id )中间中心性)sheet.write(0,2,度中心性)sheet.write(0,3,接近中心性)对于g . nodes():sheet中的v,m=1。write(m,0,v) sheet.write(m,1,b[v]) sheet.write(m,2,d[v]) sheet.write(m,3,c[v]) m=m 1#保存到超过中xls.save(文件)参考链接计算机编程语言读取战斗支援车的常用方法
【Python】Matplotlib画图(十)——基于网络x画关系网络图
用计算机编程语言处理文本文件(文本文件)数据或计算数据将其转存为超过文件
总结终于搭完了框架,后面要计算改进指标可以方便很多了,但是使用绘制精美的图表画图不好看(具体调节网络图我还没有学…,之前吐槽格菲不好看,但至少能连接地图,Gephi导出图折磨了我一周,为了能计算改进的指标,安装Neo4j把爪哇岛给卸载了,现在也不知道还能不能再画图了。)。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。