分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 网页技术

『Networkx』常用方法

发布时间:2023-09-06 01:13责任编辑:顾先生关键词:暂无标签

这是一个用于分析‘图‘结构的包,由于我只是用到了浅显的可视化功能,所以这个介绍会对其使用浅尝辄止。

 解决matplotlib中文字体缺失问题,

from pylab import mplmpl.rcParams[‘font.sans-serif‘] = [‘FangSong‘] ???# 指定默认字体mpl.rcParams[‘axes.unicode_minus‘] = False ???????# 解决保存图像是负号‘-‘显示为方块的问题

读入数据,

import pandas as pdimport networkx as nxdata = pd.read_csv(u‘C:\Projects\python3_5\Gephi\\17级学硕导师情况.csv‘)

由于图的edge输入格式是(节点1,节点2)的形式,所以我们需要整理一下数据格式,

edges = [edge for edge in zip(data[data.columns[0]],data[‘Unnamed: 2‘])]edges.extend([edge for edge in zip(data[data.columns[0]],data[‘Unnamed: 3‘])])edges.extend([edge for edge in zip(data[data.columns[5]],data[‘Unnamed: 7‘])])edges.extend([edge for edge in zip(data[data.columns[5]],data[‘Unnamed: 8‘])])edges = pd.DataFrame(edges,columns=[‘导师‘,‘学生‘]).dropna(how=‘any‘)

画图,这里面采取的是为Graph对象添加edge的形式,也可添加node等等,

实际的体会是异常自由,节点本事没有类型限制,也就是说你可以把数字、字符、其他格式的对象乃至另一个Graph赋为一个节点,当然这在可视化时意义不大,但是networkx包最大功用其实是图分析而非可视化(实际上可视化是一个辅助功能),我了解不多,也只能帮着拍拍手叫叫好了(逃~~

G = nx.Graph()G.add_edges_from([edge for edge in zip(edges[‘导师‘],edges[‘学生‘])])nx.draw(G, ???????# pos = nx.random_layout(G), ???????# pos = nx.spring_layout(G), ???????# pos = nx.shell_layout(G), ???????pos = nx.circular_layout(G), ???????node_color = ‘r‘, ???????# edge_color = ‘b‘, ???????with_labels = True, ???????font_size =20, ???????node_size =1000, ???????alpha=0.3)

  

由于涉及隐私,这里的图我把标签取消了,不过实际效果也就这样,差不太多。

『Networkx』常用方法

原文地址:http://www.cnblogs.com/hellcat/p/7593940.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved