python绘制人物关系图_文本分析之制作网络关系图——Python
今天给大家带来我一个脚本,用来分析社会网络关系。
这个图我没有用到gephi或者其他的工具,是我用python纯脚本运行出来的。简单的实现了封装,大家有兴趣可以下载下脚本,运行下。
原理知识
我就简单说下原理吧,先刻画一个简单的图A
import networkxasnx
import matplotlib.pyplot asplt
#有向图
DG = nx.DiGraph()
#添加一个节点
DG.add_node('A')
#作图,设置节点名显示,节点大小,节点颜色
nx.draw(DG,with_labels=True,node_size=900,node_color ='green')
plt.show()
双节点,有方向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 networkxasnx
import matplotlib.pyplot asplt
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类
fromrelationship 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
今天给大家带来我一个脚本,用来分析社会网络关系. 这个图我没有用到gephi或者其他的工具,是我用python纯脚本运行出来的.简单的实现了封装,大家有兴趣可以下载下脚本,运行下. 原理知识 我就简单 ...
- python词汇网络分析_文本分析之制作网络关系图——Python
今天给大年夜家带来我一个脚本,用来分析社会收集关系. 这个图我没有效到gephi或者其他的对象,是我用python纯脚本运行出来的.简单的实现了封装,大年夜家有兴趣可以下载下脚本,运行下. 1.建好小 ...
- 学校作业5_1字符串_文本分析与加密(头哥作业[Python])
本系列文章为同学困扰的python做出作业答案汇总,答案皆为本学生自己边学边做汇总上传的,编排不易,希望大家喜欢. 本作业所有内容均在github上有留存,每次作业github上会最先发布,CSDN上 ...
- 项目进度计划甘特图_项目管理进度计划表制作及甘特图绘制方法
全文总计1995字,需阅读5分钟,以下为正文: 甘特图(Gantt Chart)又称横道图,它通过图示形象地表示特定项目的活动顺序与持续时间.Excel 2007/2010中, 通过堆积条形图实现.下 ...
- python绘制直方图的函数_(六)pyplot基础图表函数(学习笔记)|python数据分析与展示...
1.pyplot基础图表函数概述 2.pyplot图饼的绘制 3.pyplot直方图的绘制 4.pyplot极坐标图的绘制 5.pyplot散点图的绘制 6.单元小结 [网页链接[Python数据分析 ...
- python英文词云代码_手把手教你制作 中英文 词云 | python demo
以前做词云的时候网上看的python做词云的坑都很多,耗了很多时间才高清楚wordcloud制作词云的精髓和脉络,整理如下. 相关文章 准备Mac环境下直接pip install wordclou ...
- python画直方图代码-Python绘制直方图及子图的方法分析(代码示例)
本篇文章给大家带来的内容是关于Python绘制直方图及子图的方法分析(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 1.直方图的绘制也需要用到matplotlib下的py ...
- tableau如何生成HTML文件,用Tableau快速制作网络关系图
我以前写过一篇文章 <用Tableau制作网络关系图>,里面提到了Tableau本身不支持自动生成网络关系图,需要借助其他软件.提供Voronoi Treemap制作方法的Tristan ...
- python阶梯图_不会你还不懂怎么用Python制图吧?师兄教你如何学会绘制漂亮的阶梯图...
Python制图你真的会吗?一文学会如何绘制漂亮的阶梯图 说到Python制图就不得不提matplotlib这个最为常用的库,matplotlib库作为Python经典的二维绘图库,在Python的数 ...
最新文章
- 张三入职遭遇,供入台资企业参考
- 华为:Access、Hybrid和Trunk三种模式的理解
- DL之HNN:基于HNN(subplot)将凌乱数字矩阵图像(模拟手写数字图片)实现转为最相近的阿拉伯数字
- java环境变量含义_Java环境变量的配置及意义
- clr 面试_一个static和面试官扯了一个小时,舌战加强版
- mysql 内存表使用教程_MySQL的内存表的基础学习教程
- orcale 之 集合操作
- python一步将npy数据保存成mat
- 利用丁香园数据生成疫情分布地图(R语言)| 博文精选
- python pow和**_「Python学习笔记」Python函数高级应用
- 笨办法学 Python · 续 练习 30:有限状态机
- SQL 2016 性能调优培训来了!!! 还免费!!!
- 编写通用 Hello World 驱动程序 (KMDF)
- 精心整理的十个必须要知道CSS+DIV技巧
- kali wifi 破解 字典制作
- Java旅游网站源码+页面
- 笔记本单/双网卡如何同时上内外网
- python,执行pip报错:Fatal error in launcher: Unable to create process using ‘“D:\tools\python.exe“ (已解决)
- Kubernets的资源管理
- Python教你18个高效编程的方法
热门文章
- jenkins从节点linux安装,linux Jenkins配置salve节点实现过程图解
- 使用USBCAN通讯(转载)
- LaTeX:多张图片排版
- 一文看懂摄像头测距技术
- r语言中trifit怎么用_R语言中的stargazer包的使用方法
- 我终于搞清了啥是 HTTPS 了
- 速来围观!看小伙是如何用python可视化各城市拥堵情况的
- ESXI上检测磁盘状态
- Symbian术语表
- Spring data jpa + sqlserver + druid, druid连接sqlserver 报错:查询超时值 -1 无效。