我们在做数据可视化时,要展现多个元素之间的相互关系时(比如人物关系图),常会用到网络图

今天我们就分享一个在 Python 里绘制网络图的库:NetworkX,并显示它的基本操作。

一、NetworkX 概述

NetworkX 是一个用 Python 语言开发的图论与复杂网络建模工具,内置了常用的图与复杂网络分析算法,可以方便的进行复杂网络数据分析、仿真建模等工作。

NetworkX 支持创建简单无向图、有向图和多重图;内置许多标准的图论算法,节点可为任意数据;支持任意的边值维度,功能丰富。主要用于创造、操作复杂网络,以及学习复杂网络的结构、动力学及其功能。用于分析网络结构,建立网络模型,设计新的网络算法,绘制网络等等。所以想学的同学,有必要听一下这位老师的课、领取python福利奥,想学的同学可以到梦雅老师的围鑫(同音):前排的是:762,中间一排是:459,后排的一组是:510 ,把以上三组字母按照顺序组合起来即可,她会安排学习的。

二、NetworkX 的安装

三、NetworkX 基础知识

  1. 创建图

可以利用 networkx 创建四种图:Graph 、DiGraph、MultiGraph、MultiDiGraph,分别为无多重边无向图、无多重边有向图、有多重边无向图、有多重边有向图。

  1. 网络图的加点和加边

运行效果如下:

为了让网络图更美观可以调节 方法里的参数

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: 节点标签字体颜色(默认为黑色)

  1. 运用布局

circular_layout:节点在一个圆环上均匀分布

random_layout:节点随机分布

shell_layout:节点在同心圆上分布

spring_layout:用 Fruchterman-Reingold 算法排列节点(样子类似多中心放射状)

spectral_layout:根据图的拉普拉斯特征向量排列节点

绘制网络图实例如下:

运行效果如下:

四、利用 NetworkX 实现关联类分析

利用 soccer.csv 中的数据,使用 Python 的 NetworkX 包按要求进行绘图。

  1. 提取数据

统计不同俱乐部(Club)的球员数量,从球员最多的五个俱乐部抽取 50 名球员信息(球员数量最多的俱乐部抽取 30 名,剩下 4 个俱乐部各抽取 5 名)构成新的 DataFrame,打印其 info()。

Jupyter Notebook 环境中读取 samples.xlsx,打印其 info(),结果如下:

  1. 画网络图

在提取出的数据的基础上,通过判断球员是否属于同一俱乐部,绘出随机分布网络图、Fruchterman-Reingold 算法排列节点网络图与同心圆分布网络图。尽可能让网络图美观,如为属于同一俱乐部的节点设置相同的颜色。所以想学的同学,有必要听一下这位老师的课、领取python福利奥,想学的同学可以到梦雅老师的围鑫(同音):前排的是:762,中间一排是:459,后排的一组是:510 ,把以上三组字母按照顺序组合起来即可,她会安排学习的。

将每个球员当作网络图中一个节点,计算节点之间的连通关系,同属一个俱乐部则连通。

(1) 随机分布网络图

运行效果如下:

(2) Fruchterman-Reingold 算法排列节点网络图

运行效果如下:

(3) 同心圆分布网络图

运行效果如下:

以上就是利用 NetworkX 绘制关系网络图的常用方法。
你要不要也来试试,用 Python 测测你和女神的颜值差距(仅供娱乐,请勿联想) 如果真的遇到好的同事,那算你走运,加油,抓紧学到手。
python、爬虫技巧资源分享添加韦辛(同音):762459510
包含python, pythonweb、爬虫、数据分析等Python技巧,以及人工智能、大数据、数据挖掘、自动化办公等的学习方法。
打造从零基础到项目开发上手实战全方位解析!

【python教程入门学习】利用Python绘制关系网络图相关推荐

  1. 【python教程入门学习】Python实现自动玩贪吃蛇程序

    这篇文章主要介绍了通过Python实现的简易的自动玩贪吃蛇游戏的小程序,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学一学 实现效果 先看看效果 这比我手动的快多了,而且是单机的,自动玩没惹 ...

  2. 【python教程入门学习】Python新年炫酷烟花秀代码

    先介绍下 Pygame 绘制烟花的基本原理,烟花从发射到绽放一共分为三个阶段: 1,发射阶段:在这一阶段烟花的形状是线性向上,通过设定一组大小不同.颜色不同的点来模拟"向上发射" ...

  3. 【python教程入门学习】Python扑克牌21点游戏实例代码

    大家好,本篇文章主要讲的是Python扑克牌21点游戏实例代码,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览 废话还是说太多了 直接上代码 | `import` `random ...

  4. 【python教程入门学习】python能做什么

    python能做什么?[python教程入门学习]介绍,最近许多的朋友咨询,听说python很火,甚至可以超越JAVA,因此很想学这个python,但是不知道python能做什么,能完成一些什么项目呢 ...

  5. 【python教程入门学习】python值得学吗,怎么自学?

    python值得学吗,怎么自学?python有用吗?有以下工作内容的人python一定有用的: python能做什么,python自学行吗? (1)长期和数据excel打交道的人,或者整理文本等数据格 ...

  6. [python教程入门学习]初学 Python 必备官方教程 之1. 开胃菜

    如果你要用计算机做很多工作,最后你会发现有一些任务你更希望用自动化的方式进行处理.比如,你想要在大量的文本文件中执行查找/替换,或者以复杂的方式对大量的图片进行重命名和整理.也许你想要编写一个小型的自 ...

  7. 【python教程入门学习】Python零基础入门爬虫项目

    Python入门爬虫项目 这是我的第一个python项目,分享给大家. 需求 我们目前正在开发一款产品其功能大致是:用户收到短信如:购买了电影票或者火车票机票之类的事件.然后app读取短信,解析短信, ...

  8. 【python教程入门学习】Python 集成开发环境(IDE): VS Code

    "工欲善其事必先利其器"中的"器",对于一个程序员来说就是编辑器.编译器(或解释器).调试器等工具,这些器具(工具)帮助我们快速的写出程序,运行程序和解决其中的 ...

  9. 【python教程入门学习】Python教程第1篇:下载和安装Python

    Python是当下流行的通用编程语言,简单易学.容易上手,且"钱"景广阔. 在网络爬虫.数据挖掘分析.人工智能.运营运维.日常工作效率提升,无不有Python的影子. 因此,今天跟 ...

  10. 【python教程入门学习】Python的运算对象、运算符、表达式和语句

    编程的本质就是数据和运算,数据由基本数据类型.数据结构来表示,运算就是对这些数据的各种操作,基本的加减乘除.是非判断.流程控制等等.这些操作就是今天我们要讲的运算符.表达式和语句. 前面我们学习Pyt ...

最新文章

  1. poj1511(SPFA算法)
  2. Java核心技术笔记 语言基础
  3. linux 用户创建、管理、权限分配
  4. SpringBoot 实现Session共享
  5. hadoopstreaming
  6. Winform的html编辑控件htmleditor 有时候无法为里面HTML属性初始化
  7. [C++]什么是句柄?为什么会有句柄?
  8. Shiro的退出登录状态的方式
  9. 上海交大计算机系王楠,交通学院本科生学生组织干部名单
  10. JZOJ 6841. 【2020.11.5提高组模拟】淘淘蓝蓝之树林(凸包+最短路)
  11. 9月18日博文阅读数异常波动公告
  12. Python爬虫之爬取豆瓣图书TOP250
  13. Ora-12514原因及处理方法
  14. jQuery 之过滤选择器
  15. 如何通过银行卡号 判断归属银行
  16. 2022-2028年全球与中国工业用智能眼镜行业产销需求与投资预测分析
  17. 实战技法 - 短线操盘 (8)
  18. RFID技术对危化品实行安全化
  19. CSS3实现3D立体效果
  20. 那些年你趟过的坑——项目经理爬坑论

热门文章

  1. 定了!旗手苏炳添!却被23年前的科幻小说“神预言”?作者回应!
  2. 10月1日之后,你新建的GitHub库默认分支不叫「master」了
  3. Linux shell命令总结
  4. Emmet语法(快速生成HTML结构语法、快速生成CSS样式语法)
  5. windows系统下的FTP命令
  6. 目标检测算法终结篇:YOLOv7(非正式版)正式开源
  7. 下划线在 Python 中的特殊含义
  8. 计算机视觉还能撑多久?
  9. python pip install如何解决安装包read time out报错
  10. 触发器实现两表之间的INSERT,DELETE,UPDATE