42

使用networkx及matplotlib库实现社会网络分析及可视化

 4 years ago
source link: http://mp.weixin.qq.com/s?__biz=MzI1MTE2ODg4MA%3D%3D&%3Bmid=2650071576&%3Bidx=1&%3Bsn=76295dedecb85ab1be65b411af24c4b8
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

公众号: HR和Python

4年人力资源从业经验, 情报学硕士 主要内容涵盖python、数据分析和人力资源相关内容

networkx是python的一个第三方包,可以方便地调用各种图算法的计算。通过调用python画图包matplotlib能实现图的可视化。如果需要详细了解networks库可以参照官方文档:https://networkx.github.io/documentation/networkx-1.9/

1.安装库

安装networkx


2.使用

创建一个没有节点也没有边的空图

在使用networks进行创建网络关系及网络分析之前,我们首先要先创建空图,在networks库中,提供三种类型的图:简单无向图graph,有向图digraph,可重复边的multi-graph。语法如下:

代码 功能 G=nx.Graph() 创建空的简单图 G=nx.DiGraph() 创建空的简单有向图 G=nx.MultiGraph() 创建空的多图 G=nx.MultiDiGraph() 创建空的有向多图

比如我们创建名为G的无向图,具体代码如下:

创建节点(add_note)

这里的点可以是任意可区分的对象(hashable),比如数字,字符串,对象等。

用一个对象多为key来唯一区别一个点

用一个列表来批量加入点

用一个图对象作为加入点

嵌入到其他图中这里D作为一个点的key,或者把一个图的所有点赋予另一个图

  • G.add_node(D)

  • G.add_ nodes_ from(D)这里返回D的所有点,赋予G

比如我们创建节点名为1和"python"的节点 具体代码如下:

删除节点(remove_node)

删除节点和创建节点用法几乎相同,比如我们删除节点'python',或者从列表[1,2,3]中删除节点

创建边

功能 代码 节点1,2之间创建一条边 G.add_edge(1,2) 用包含元组的列表批量创建边 G.add_ edges_ from([(1,2),(2,3)] 将一个图的边赋予另一个图 G.add_ edges_ from(H)

删除边(remove_edge)

删除节点和创建节点用法几乎相同,比如我们删除节点1,2之间的边,或者批量删除节点(1,2),节点(3,4)之间的边

访问

我们可以访问图中的节点和节点之间的边

  • 访问 G.nodes()

  • 访问节点 G.edges()

画网络图

将创建的图进行可视化呈现需要用到matplotlib.pyplot库

ZzMVb2F.png!web

设置节点颜色,大小

Q3eM7vm.png!web

实战

接下来我们用已经清洗好的数据集绘制《神雕侠侣》人物网络关系图

6n6Vbe2.jpg!web

近期文章

代码不到40行的超燃动态排序图

如何使用Adaboost预测下一次营销活动的效果

Python网络爬虫与文本数据分析

日期数据操作第1期 datetime库

日期数据操作第2期 pandas库

Python语法快速入门

Python爬虫快速入门

文本数据分析文章汇总(2016-至今)

当文本分析遇到乱码(ง'⌣')ง怎么办?

Loughran&McDonald金融文本情感分析库

当pandas遇上数据类型问题

如何理解pandas中的transform函数

计算社会经济学

一行pandas代码生成哑变量

Python最被低估的库,用好了效率提升10倍!

公众号后台回复关键词“ 20191127 ”,即可获得课件资源 请在 如果觉得有用,欢迎转发支持~ 如果您想了解如何对小说人物关系数据进行清洗,请关注我们下期内容


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK