python绘制社会关系网络图_文本分析之制作网络关系图(Python)
最近忙于学术,公众号更新的有点慢了,在这里给大家个歉,希望大家能继续支持我。由于学术需要,未来一段时间,我以后会有一些文本分析的脚本要出现,希望大家喜欢。
目前简单的文本分析已经满足我人物需要,所以还不会去学机器学习,任务导向是最好的学习方法。希望大家也能找点有意思任务,python下。
今天给大家带来我写好的脚本,用来分析社会网络关系。
这个图我没有用到gephi或者其他的工具,是我用python纯脚本运行出来的。简单的实现了封装,大家有兴趣可以下载下脚本,运行下。
原理知识
我就简单说下原理吧,先刻画一个简单的图A
import networkx as nx
import matplotlib.pyplot as plt
#有向图
DG = nx.DiGraph()
#添加一个节点
DG.add_node('A')
#作图,设置节点名显示,节点大小,节点颜色
nx.draw(DG,with_labels=True,node_size=900,node_color = 'green')
plt.show()
双节点,有方向A-->B
双节点,有方向A-->B
#有向图
DG = nx.DiGraph()
#添加一个节点
DG.add_node('A')
DG.add_node('B')
#添加边,有方向,A-->B
DG.add_edge('A','B')
#作图,设置节点名显示,节点大小,节点颜色
nx.draw(DG,with_labels=True,node_size=900,node_color = 'green')
plt.show()
添加更多节点
添加更多节点
import networkx as nx
import matplotlib.pyplot as plt
colors = ['red', 'green', 'blue', 'yellow']
#有向图
DG = nx.DiGraph()
#一次性添加多节点,输入的格式为列表
DG.add_nodes_from(['A', 'B', 'C', 'D'])
#添加边,数据格式为列表
DG.add_edges_from([('A', 'B'), ('A', 'C'), ('A', 'D'), ('D','A')])
#作图,设置节点名显示,节点大小,节点颜色
nx.draw(DG,with_labels=True, node_size=900, node_color = colors)
plt.show()
好了,同样的道理,咱们建立角色词典,插入节点列表,然后遍历插入有向边关系,就能做出这图
好了,同样的道理,咱们建立角色词典,插入节点列表,然后遍历插入有向边关系,就能做出这图
详情大家可以去看看
详情大家可以去看看 实验楼网
《Python基于共现提取《釜山行》人物关系》
这篇文章写的很好(希望不要黑我,我也是觉得真心好)。我基本上借鉴了这篇文章思路写今天这个脚本,实现了自动生成关系网络图。
准备工作
一、安装matplotlib、networkx
二、解决matplotlib无法写中文问题
1、找到pythonX\lib\site-packages\matplotlib\mpl-data\fonts\ttf文件夹
2、matplotlib默认调用的为DejaVuSans.ttf字体文件,网上下载个
微软雅黑.ttf
3、将微软雅黑文件名改为DejaVuSans.ttf粘贴到ttf文件夹下即可。
脚本文件简介
你下载后脚本 文件夹名 为:人民的名义
其中的relationship.py就是大邓写的库(直接能调用的哦)
实现功能:
1、读入小数数据和角色词典后,对数据分词后生成角色关系数据(有向关系数据)
2、无需gephi绘图即可制作绚丽角色关系网络图。
注意:
1、运行脚本前,文件夹中只保留 角色名单.txt 人民的名义.txt 和 relationship.py
2、要想图片好看点,一定要联网啊。里面我写了个爬虫,爬取一个配色网站的配色值。
如果你们想单机也可以画出好看的图,可以修改下代码,将代码爬虫部分改成读取本地颜色数据
使用示例
1、建好小说数据中的角色字典,格式如下
2、在文件夹中放入小说txt文件(人民的名义.txt)
3、在脚本文件夹中新建一个test.py文件
#导入relationship库中的Relationship类
from relationship import Relationship
#自定义节点词典(小说中人物角色)
dictpath = r'/Users/suosuo/Desktop/人民的名义/角色名单.txt'
#小说路径,只能是编码方式为utf-8的txt文件
datapath = r'/Users/suosuo/Desktop/人民的名义/人民的名义.txt'
#程序运行生成的角色关系图保存地址
pic = r'/Users/suosuo/Desktop/人民的名义/人物关系图.png'
Re = Relationship(dictpath, datapath)
relation = Re.relationship()
graph = Re.network_digraph(relation, pic)
4、运行
文件夹中生成了 人物关系图.png、node_edge.txt和node_freq.txt文件。
node_edge.txt 有向图关系数据,可以后续导入gephi软件自定义制图
node_freq.txt 节点出现频率
注意: 每次运行前请把人物关系图.png、node_edge.txt和node_freq.txt文件删除掉,再运行
关注公众号:大邓带你玩python
文中末尾附有脚本文件下载地址
更多内容
文本分析
爬虫
神奇的python
python绘制社会关系网络图_文本分析之制作网络关系图(Python)相关推荐
- python绘制社会关系网络图_文本分析之制作网络关系图——Python
今天给大家带来我一个脚本,用来分析社会网络关系. 这个图我没有用到gephi或者其他的工具,是我用python纯脚本运行出来的.简单的实现了封装,大家有兴趣可以下载下脚本,运行下. 原理知识 我就简单 ...
- python词汇网络分析_文本分析之制作网络关系图——Python
今天给大年夜家带来我一个脚本,用来分析社会收集关系. 这个图我没有效到gephi或者其他的对象,是我用python纯脚本运行出来的.简单的实现了封装,大年夜家有兴趣可以下载下脚本,运行下. 1.建好小 ...
- python关系图谱_文本分析之制作网络关系图
最近忙于学术,公众号更新的有点慢了,在这里给大家个歉,希望大家能继续支持我.由于学术需要,未来一段时间,我以后会有一些文本分析的脚本要出现,希望大家喜欢. 目前简单的文本分析已经满足我人物需要,所以还 ...
- python绘制社会关系网络图_python networkx 包绘制复杂网络关系图的实现
1. 创建一个图 import networkx as nx g = nx.Graph() g.clear() #将图上元素清空 所有的构建复杂网络图的操作基本都围绕这个g来执行. 2. 节点 节点的 ...
- 学校作业5_1字符串_文本分析与加密(头哥作业[Python])
本系列文章为同学困扰的python做出作业答案汇总,答案皆为本学生自己边学边做汇总上传的,编排不易,希望大家喜欢. 本作业所有内容均在github上有留存,每次作业github上会最先发布,CSDN上 ...
- python绘制社会关系网络图_Python networkx 网络图绘制
简单演示 import networkx as nx import matplotlib.pyplot as plt # 定义空图 g = nx.Graph() # 增加节点 g.add_node(1 ...
- python绘制网络关系图
import networkx as nx# 数据准备 G = nx.DiGraph() # 单边有向图G.add_edges_from([(1,2), ('x','y'), (2,3)...]) # ...
- 数据可视化—复杂网络关系图的绘制
数据可视化的含义 将抽象概念进行形象性表达,将抽象语言进行具象图形可视的过程. 以数据为工具,以可视化为手段,去达到描述真实,探索世界的目的. 以数据的视角,去看待世界. 数据可视化其实是一个处于不断 ...
- python 使用文本注解绘制树节点_实用篇 | 34 个最火的 Python 开源框架
阅读文本大概需要 5 分钟. 我们从近 10000 个 Python 开源框架中评价整理的 34 个最为好用的开源框架,它们细分可以分为 Python Toolkit.Web.Terminal.Cod ...
- python使用jieba模块进行文本分析和搜索引擎推广“旅行青蛙”数据分析实战
目录 1 需要导入的模块 2 中文分词基础步骤 2.1 载入数据 2.2 分词 2.3 分词后的数据转回文本 2.4 保存分词后的文本为文本文件 3 添加自定义词典 3.1 方法1:直接定义词典列表 ...
最新文章
- 11.菜单界面、详情界面
- Python 语法错误:“SyntaxError: invalid character in identifier“,原因及解决方法
- 报表测试用例设计方法总结
- pythonui教学视频_分享软件开发相关视频教程(Java、C++、Python、UI设计、HTML5、iOS)...
- 基于JAVA+Swing+MYSQL的进销存管理系统
- B/S应用中的ActiveX数字签名相关问题杂谈
- NPOI自定义单元格背景颜色
- LeetCode解题思路—区间合并
- 计算机毕业设计ssm汽车租赁系统42876系统+程序+源码+lw+远程部署
- 【JY】力荐佳作《结构地震分析编程与应用》
- JAVA随机抽取一名幸运观众(手动输入观众)小实例
- w7文件加密提示没启用服务器,win7文件夹设置密码没有密钥提示该怎么解决
- BJT转UTC世界协调时
- python批量压缩图片_Python图片批量压缩到指定大小并将JPG转为PNG格式
- iOS 设置tableview组头组尾的背景色
- plotly 坐标轴(axes)设置
- 用Java求出所有水花仙花数
- C++输入0结束循环
- Postman:通过CSV文件实现接口自动化测试,实际结果预期结果对比,断言判断用例是否通过(上)
- CSS--网页样式布局(一)