python 画云图_【词云图】如何用python的第三方库jieba和wordcloud画词云图
一直想学一下如何用python画词云图,觉得很好玩,本文就写一下我自己的一些尝试。
1、提前准备
一般准备以下四样就可以啦。
第一,电脑安装python,我装的是3.6。
第二,安装第三方库jieba和wordcloud,一个是用于分词,一个用于生成词云图。python安装这两个第三方库的方法也比较简单,在cmd里面输入如下的命令行即可:
pip install jieba
pip install wordcloud
第三,准备一份需要分词的文档,我这里随便找了一份关于电影评价的文档,记得要保存成txt文档。如下所示。
image.png
第四,需要准备一张你喜欢的图片,用于生成词云图的形状,这里要注意,最好选一个白底的图片,轮库比较明显的,我选了下面这张小熊的图片。
xiong.jpg
一切准备就绪,就可以打开python写代码生成词云图啦。
2、书写生成词云图代码
2.1 首先把相关的包加载进来
from os import path
from wordcloud import WordCloud
import matplotlib.pyplot as plt
from scipy.misc import imread
import jieba.analyse
像matplotlib和scipy都是python常用的包,如果没有安装好可以自行百度一下如何安装。
2.2 加载准备好的文档和图片
把movie.txt和xiong.jpg放在当前目录下。
CURRENT_PATH = path.dirname(path.abspath(__file__))
TEXT_FILE = path.join(CURRENT_PATH, 'movie.txt')
IMG_FILE = path.join(CURRENT_PATH, 'xiong.jpg')
2.3 定义一个分词的函数
def get_frequencies():
with open(TEXT_FILE, 'r', encoding="GB2312") as f:
text = f.read()
words = jieba.analyse.extract_tags(text, topK=200, withWeight=True)
# words is list, change it to dict
return dict(words)
这个函数用jieba对文档进行分词,topK是可以返回的最大的分词数。这里有一个坑,我是从网上下载的movie.txt,要用notepad打开看一下编码方式,我的文档的编码方式为GB2312,则在encoding后面写GB2312,如果编码方式为utf-8,把GB2312改成utf-8即可。
2.4定义一个制作词云图的函数
ef make_wordcloud(words):
# get mask
my_mask = imread(IMG_FILE)
# set wordcloud
my_wordcloud = WordCloud(
font_path="msyh.ttc",
background_color="white",
max_words=1000,
max_font_size=50,
width=1500,
height=1500,
mask=my_mask,
contour_width=2,
contour_color='steelblue'
)
# words must be dict
my_wordcloud.generate_from_frequencies(words)
return my_wordcloud
先用 imread函数把事先准备好的图片读取出来,然后用WordCloud函数生成词云图,中间要输入很多参数,可以自己调节,比如 background_color="white",这句代码意思是设置词云图的背景颜色为白色,如果你想背景颜色为黑色,只要把white改成black即可。contour_width=2代表轮廓宽度为2,contour_color='steelblue'代表轮廓颜色为蓝色等。这些参数都可以自行调整。
2.5 定义显示词云图和保存词云图的函数
def show_it(wordcloud):
# show it
plt.imshow(wordcloud)
plt.axis('off')
plt.show()
def save_it(wordcloud, name):
filename = '{}.jpg'.format(name)
wordcloud.to_file(path.join(CURRENT_PATH, filename))
图片保存在当前目录下。
2.6 主函数运行程序
if __name__ == '__main__':
words = get_frequencies()
wordcloud = make_wordcloud(words)
show_it(wordcloud)
save_it(wordcloud, 'my_wordcloud')
3、结果展示
运行代码之后生成的词云图如下所示。
my_wordcloud.jpg
从生成的词云图中可以看出有一些词在文档中出现次数比较高,所以字相对比较大,比如高尔夫球,阿甘正传,努力,鲁迅等。
前后对比一下,有没有觉得很可爱,可以自己动手试试哦。
image.png
python 画云图_【词云图】如何用python的第三方库jieba和wordcloud画词云图相关推荐
- python词云图代码示例 无jieba_【词云图】如何用python的第三方库jieba和wordcloud画词云图...
一直想学一下如何用python画词云图,觉得很好玩,本文就写一下我自己的一些尝试. 1.提前准备 一般准备以下四样就可以啦. 第一,电脑安装python,我装的是3.6. 第二,安装第三方库jieba ...
- 如何用python做词云图_科学网—如何用Python做词云?(基础篇视频教程) - 王树义的博文...
只需要花10几分钟,跟着教程完整做一遍,你就能自己用Python做出词云了. <如何用Python做词云?>图文版发布于2017年6月,是我数据科学系列教程中的第一篇. 目前仅简书一个平台 ...
- python怎么画人像_教你如何用Python画出心目中的自己
原标题:教你如何用Python画出心目中的自己 引言:人脸图像的生成在各个行业有着重要应用,例如刑事调查.人物设计.教育培训等.然而一幅逼真的人脸肖像,对于职业画家也要至少数小时才能绘制出来:对于从未 ...
- Python第三方库jieba以及wordcloud学习笔记
jieba库 jieba库是具有强大分词功能的第三方库.在中文文本分词中具有较好的应用表现.工作机制为 利用一个中文词库,确定汉字之间的关联概率 汉字间概率大的组成词组,形成分词结果 除了系统给定分词 ...
- python如何画圆环_教你如何用Python制作出好看的动态圆环图、饼图
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 欢迎点击右上角关注小编,除了分享技术文章之外还有很多福利,私信学习资料可以 ...
- python 人脸替换_萌新如何用Python实现人脸替换?
翻译:小马哥 编辑:船长 还记得吗?去年冬天,在国外 AI 圈有个事情闹得很火:知名论坛 Reddit 上忽然出现一个叫 deepfakes 的大神,借助神经网络实现了人脸替换,让一些好莱坞女星&qu ...
- python浪漫文艺_从零开始,如何用python定时更新炫酷文艺的桌面背景
先介绍一个网站--句子迷,网站上有众多网友分享的经典句子,我们将搜索我们喜欢的作者,爬取所有该作者的名句. 我们利用selenium来进行可视化的爬虫,首先要pip install selenium, ...
- 用visio画用例图小人_教你如何用 Python 打飞机 ?
前言:python 除了生孩子 ,啥都会 .包括打飞机 !今天就来教你如何用 python 打飞机 ! 简述 相信你是一个单纯的孩子说的打飞机是指啥意思 ,对吧 ?嗯 ,没毛病 .就是 pygame ...
- 用python输出圣诞树_教你怎样用Python画了一棵圣诞树,赶紧来学习
文中的文本及图片来源于互联网,仅作学习培训.沟通交流应用,不具备一切商业行为,如有什么问题请立即在线留言以作解决. 下列文章内容来源于IT新手入门 共享给大伙儿一篇文章,教你如何用Python画了一棵 ...
最新文章
- sql server jar包_老王,怎么完整SQL的显示日志,而不是???...
- VTK:图片之ImageMagnitude
- linux 高级命令
- 轴只显示5个刻度_告别大象腿,迎接魅力美腿,变身女王你只需5个方法
- Deep Learning基础--Softmax求导过程
- 中继链路,以太网通道,DHCP配置
- 智能家居系统通信方式,主要有以下四种
- GetUserName()第二个参数中指明缓冲区长度
- Window10下让自己开发的自启动程序支持拉起一个图形化软件
- python 爬虫之路教程
- Unity3DShader基础(CG)
- NOIP2016普及组T1(买铅笔)题解
- 携宠旅行逐渐成为新一代宠物主“刚需”,宠物友好型酒店呈现稀缺
- 微信中怎么打开apk文件 微信跳转打开外部浏览器打开apk文件
- 多路耦合器(有源分离器)在无线通讯中的应用
- 小米笔记本锁屏睡眠无法唤醒修复方法
- spyder pyecharts不显示_逆袭的IGZOIPS!微星电竞显示器新品评测:色彩好且拖影少...
- unhandled exception in XXX:0xC0000005:access violation问题
- 计算机的定点运算器原理,优·计算机组成原理 定点运算器的组成和结构.doc
- 麒麟 嵌入式linux操作系统_体验了一下北韩操作系统RedStar红星OS;国产linux优麒麟...
热门文章
- suse 安装mysql5.6_SuSE11安装MySQL5.6.40:RPM安装方式
- java b kb mb gb 转换_java 上传文件大小转换为 GB/MB/KB/B
- pyglet and opengl -- 纹理映射以及动画
- Code128条形码
- Staple 跟踪: Complementary Learners for Real-Time Tracking
- Invalid argument(s) 'pool_size' sent to create_engine(), using configuration
- Error(s) in loading state_dict for ModelMain
- Haar Adaboost 视频车辆检测代码和样本
- 二叉树深度优先遍历和广度优先遍历
- 7.pip工具的使用