首页 > 其他分享 >将gephi文件导入到networkx中使用

将gephi文件导入到networkx中使用

时间:2023-07-15 11:47:49浏览次数:39  
标签:导入到 文件 target source json gephi networkx print

最近基于Transbigdata库编写代码获取了某市轨道交通网络的邻接表及shp文件,并使用Gephi对轨道交通网络进行了可视化处理,之后想尝试一下把Gephi的成果快捷地转为networkx格式来计算各种指标,编写了一些代码,步骤如下:

1.将gephi成果导出

打开gephi文件后点击文件—输出—图表文件

选择输出文件类型为json文件

 

用记事本打开json文件,可以看到文件内包括了node,edge两个表格,每个节点和边的属性以字典形式储存

2.代码

在得到了json文件后,编写代码读取json文件并转为networkx的图格式

 1 import csv
 2 import json
 3 import networkx as nx
 4 import matplotlib.pyplot as plt
 5 
 6 #创新新的图对象G
 7 G = nx.Graph()
 8 
 9 
10 f = open('Untitled.json', 'r',encoding = 'utf-8')#此处将路径替换为自己的
11 content = f.read()
12 a = json.loads(content)
13 print(type(a))
14 list_1=a['nodes']
15 list_2=a['edges']
16 dic={}
17 #对点进行处理
18 for lis1 in list_1:
19     pid=lis1['key']
20     label=lis1['attributes']['label']
21     lon=lis1['attributes']['lon']
22     lat=lis1['attributes']['lat']
23     dic[pid]=label
24 #    print(pid,label,lon,lat)此处输出每个节点的信息
25 #在G中添加点
26     G.add_node(label,lon = lon,lat = lat)
27 #print(dic)此处输出最终的节点字典
28 
29 #对边进行处理
30 for lis2 in list_2:
31     s=lis2['source']
32     t=lis2['target']
33     source=dic[s]
34 #    print('source:',source)此处输出每个边的源节点
35     target=dic[t]
36 #    print('target',target)此处输出每个边的目标节点
37 #设置权重
38     wei=lis2['attributes']['weight']
39 #    print(source,target,wei)此处输出边的信息
40 #添加边
41     G.add_edge(source,target,weight=weigh)
42 
43 print(G.nodes(data = True))
44 print(G.edges(data=True))
45 nx.draw(G,node_size = 30)
46 plt.show()

最终得到networkx的加权网络G

 

后续再写一下如何基于transbigdata库获取地铁网络邻接表和shp文件,以及如何通过坐标点绘图和调整节点及边的图像属性

标签:导入到,文件,target,source,json,gephi,networkx,print
From: https://www.cnblogs.com/Vicrooor/p/17555865.html

相关文章

  • Python 使用 NetworkX
    Python使用NetworkX说明:本篇文章主要讲述python使用networkx绘制有向图;1.介绍&安装NetworkX是一个用于创建、操作和研究复杂网络的Python库。它提供了丰富的功能,可以帮助你创建、分析和可视化各种类型的网络,例如社交网络、Web图、生物网络等。NetworkX可以用来创建......
  • 大数据NiFi(十九):实时Json日志数据导入到Hive
    文章目录实时Json日志数据导入到Hive一、配置“TailFile”处理器1、创建“TailFile”处理器2、配置“PROPERTIES”二、配置“EvaluateJsonPath”处理器1、创建“EvaluateJsonPath”处理器2、配置“PROPERTIES”3、连接“TailFile”处理器和“EvaluateJsonPath”处理器三、配置“Rep......
  • 将CSV导入到MySQL数据库
    参考:https://blog.csdn.net/fwdwqdwq/article/details/126081152.使用一下命令查看是否允许从外部路径导入文件mysql>showvariableslike"%secure%";+--------------------------+-------+|Variable_name|Value|+--------------------------+-------+|r......
  • mysql将一个表的数据导入到另一个表
     将一个表的数据插入到另外一个表中的几种情况如下:1.如果2张表的字段一致,并且希望插入全部数据,可以用这种方法:   INSERT INTO目标表SELECT*FROM来源表;   例如:insertintoinsertTestselect*frominsertTest2;2.如果只希望导入指定字段,可以用这种方法: ......
  • jexcel_将excel数据导入到页面
    jexcel_将excel数据导入到页面    还需解决的课题:下载jszip.js和xlsx.js<%@PageLanguage="C#"AutoEventWireup="true"CodeFile="有效代码_将excel数据导入到网页.aspx.cs"Inherits="Default2"%><!DOCTYPEhtml><htmlxmlns="......
  • excel文档导入到Oracle表中方法
    第一种方式:excel文本中的列名最好是英文名,方便导入的时候对数据库表中的列名,中文名可能会出错另一种方法:该方法比较简便可以直接通过'select*from表名forupdate',直接复制粘贴excel中的字段到表中第一种方式导入:在plsql中,工具→ODBC导入器→来自ODBC的数据输入用户/系统......
  • 如何将之前编辑的文章HTML源代码导入到TinyMCE编辑器中
    如果你想用TinyMCE来修改你之前写的文章那么你需要将源代码放到TinyMCE中,如果服务器把HTML源码发给我们可是我们应该怎样调用?方法为使用 tinymce.activeEditor.setContent()这个函数具体用法为:tinymce.activeEditor.setContent()//设置TinyMCE编辑器里的内容源代码tin......
  • NetworkX
    find_cyclevssimple_cyclesinnetworkxfind_cycleandsimple_cyclesaretwofunctionsprovidedbythenetworkxlibraryinPythonforfindingcyclesinagraph.find_cycleisafunctionthatfindsacycleinadirectedgraph.Itreturnsalistofnodes......
  • 如何利用git地址将项目导入到本地
    步骤1、在本地新建一个我们专门放置协作仓库的文件夹,然后右键,选中GitBashHere打开2、进入到终端界面,输入gitclone+git网址然后就可以在我们新建的那个文件夹里面看到相应的git项目信息啦!当然,前提是你是已经被邀请共同协作的呦!......
  • SpringBoot中使用POI实现Excel导入到数据库(图文教程已实践)
    场景IDEA中开发SpringBoot项目时需要将Excel模板中数据导入的到数据库。Excel模板如下实现思想首先将模板上传到服务器中某路径,并将当前路径存储,然后使用POI自带的工具类获......