python教程入门学习利用Python绘制关系网络图
Posted 梦子mengy7762
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python教程入门学习利用Python绘制关系网络图相关的知识,希望对你有一定的参考价值。
我们在做数据可视化时,要展现多个元素之间的相互关系时(比如人物关系图),常会用到网络图。
今天我们就分享一个在 Python 里绘制网络图的库:NetworkX,并显示它的基本操作。
一、NetworkX 概述
NetworkX 是一个用 Python 语言开发的图论与复杂网络建模工具,内置了常用的图与复杂网络分析算法,可以方便的进行复杂网络数据分析、仿真建模等工作。
NetworkX 支持创建简单无向图、有向图和多重图;内置许多标准的图论算法,节点可为任意数据;支持任意的边值维度,功能丰富。主要用于创造、操作复杂网络,以及学习复杂网络的结构、动力学及其功能。用于分析网络结构,建立网络模型,设计新的网络算法,绘制网络等等。所以想学的同学,有必要听一下这位老师的课、领取python福利奥,想学的同学可以到梦雅老师的围鑫(同音):前排的是:762,中间一排是:459,后排的一组是:510 ,把以上三组字母按照顺序组合起来即可,她会安排学习的。
二、NetworkX 的安装
三、NetworkX 基础知识
- 创建图
可以利用 networkx 创建四种图:Graph 、DiGraph、MultiGraph、MultiDiGraph,分别为无多重边无向图、无多重边有向图、有多重边无向图、有多重边有向图。
- 网络图的加点和加边
运行效果如下:
为了让网络图更美观可以调节 方法里的参数
G:待绘制的网络图G
node_size:指定节点的尺寸大小(默认是300)
node_color: 指定节点的颜色 (可以用字符串简单标识颜色,例如’r’为红色,'g’为绿色这样)
node_shape: 节点的形状(默认是圆形,用字符串’o’标识)
alpha: 透明度 (默认是1.0,不透明,0为完全透明)
width: 边的宽度 (默认为1.0)
edge_color: 边的颜色(默认为黑色)
style: 边的样式(默认为实现,可选:solid | dashed | dotted | dashdot
with_labels:节点是否带标签
font_size: 节点标签字体大小
font_color: 节点标签字体颜色(默认为黑色)
- 运用布局
circular_layout:节点在一个圆环上均匀分布
random_layout:节点随机分布
shell_layout:节点在同心圆上分布
spring_layout:用 Fruchterman-Reingold 算法排列节点(样子类似多中心放射状)
spectral_layout:根据图的拉普拉斯特征向量排列节点
绘制网络图实例如下:
运行效果如下:
四、利用 NetworkX 实现关联类分析
利用 soccer.csv 中的数据,使用 Python 的 NetworkX 包按要求进行绘图。
- 提取数据
统计不同俱乐部(Club)的球员数量,从球员最多的五个俱乐部抽取 50 名球员信息(球员数量最多的俱乐部抽取 30 名,剩下 4 个俱乐部各抽取 5 名)构成新的 DataFrame,打印其 info()。
Jupyter Notebook 环境中读取 samples.xlsx,打印其 info(),结果如下:
- 画网络图
在提取出的数据的基础上,通过判断球员是否属于同一俱乐部,绘出随机分布网络图、Fruchterman-Reingold 算法排列节点网络图与同心圆分布网络图。尽可能让网络图美观,如为属于同一俱乐部的节点设置相同的颜色。所以想学的同学,有必要听一下这位老师的课、领取python福利奥,想学的同学可以到梦雅老师的围鑫(同音):前排的是:762,中间一排是:459,后排的一组是:510 ,把以上三组字母按照顺序组合起来即可,她会安排学习的。
将每个球员当作网络图中一个节点,计算节点之间的连通关系,同属一个俱乐部则连通。
(1) 随机分布网络图
运行效果如下:
(2) Fruchterman-Reingold 算法排列节点网络图
运行效果如下:
(3) 同心圆分布网络图
运行效果如下:
以上就是利用 NetworkX 绘制关系网络图的常用方法。
你要不要也来试试,用 Python 测测你和女神的颜值差距(仅供娱乐,请勿联想) 如果真的遇到好的同事,那算你走运,加油,抓紧学到手。
python、爬虫技巧资源分享添加韦辛(同音):762459510
包含python, pythonweb、爬虫、数据分析等Python技巧,以及人工智能、大数据、数据挖掘、自动化办公等的学习方法。
打造从零基础到项目开发上手实战全方位解析!
以上是关于python教程入门学习利用Python绘制关系网络图的主要内容,如果未能解决你的问题,请参考以下文章
python教程入门学习用pyecharts绘制带动画效果的“时间轮播图
数据分析从入门到“入坑“系列利用Python学习数据分析-IPython讲解
数据分析学习资料《利用Python进行数据分析第2版》+《Python数据分析与挖掘实战》+《从零开始学Python数据分析与挖掘》