一直想学一下如何用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画词云图相关推荐

  1. python词云图代码示例 无jieba_【词云图】如何用python的第三方库jieba和wordcloud画词云图...

    一直想学一下如何用python画词云图,觉得很好玩,本文就写一下我自己的一些尝试. 1.提前准备 一般准备以下四样就可以啦. 第一,电脑安装python,我装的是3.6. 第二,安装第三方库jieba ...

  2. 如何用python做词云图_科学网—如何用Python做词云?(基础篇视频教程) - 王树义的博文...

    只需要花10几分钟,跟着教程完整做一遍,你就能自己用Python做出词云了. <如何用Python做词云?>图文版发布于2017年6月,是我数据科学系列教程中的第一篇. 目前仅简书一个平台 ...

  3. python怎么画人像_教你如何用Python画出心目中的自己

    原标题:教你如何用Python画出心目中的自己 引言:人脸图像的生成在各个行业有着重要应用,例如刑事调查.人物设计.教育培训等.然而一幅逼真的人脸肖像,对于职业画家也要至少数小时才能绘制出来:对于从未 ...

  4. Python第三方库jieba以及wordcloud学习笔记

    jieba库 jieba库是具有强大分词功能的第三方库.在中文文本分词中具有较好的应用表现.工作机制为 利用一个中文词库,确定汉字之间的关联概率 汉字间概率大的组成词组,形成分词结果 除了系统给定分词 ...

  5. python如何画圆环_教你如何用Python制作出好看的动态圆环图、饼图

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 欢迎点击右上角关注小编,除了分享技术文章之外还有很多福利,私信学习资料可以 ...

  6. python 人脸替换_萌新如何用Python实现人脸替换?

    翻译:小马哥 编辑:船长 还记得吗?去年冬天,在国外 AI 圈有个事情闹得很火:知名论坛 Reddit 上忽然出现一个叫 deepfakes 的大神,借助神经网络实现了人脸替换,让一些好莱坞女星&qu ...

  7. python浪漫文艺_从零开始,如何用python定时更新炫酷文艺的桌面背景

    先介绍一个网站--句子迷,网站上有众多网友分享的经典句子,我们将搜索我们喜欢的作者,爬取所有该作者的名句. 我们利用selenium来进行可视化的爬虫,首先要pip install selenium, ...

  8. 用visio画用例图小人_教你如何用 Python 打飞机 ?

    前言:python 除了生孩子 ,啥都会 .包括打飞机 !今天就来教你如何用 python 打飞机 ! 简述 相信你是一个单纯的孩子说的打飞机是指啥意思 ,对吧 ?嗯 ,没毛病 .就是 pygame ...

  9. 用python输出圣诞树_教你怎样用Python画了一棵圣诞树,赶紧来学习

    文中的文本及图片来源于互联网,仅作学习培训.沟通交流应用,不具备一切商业行为,如有什么问题请立即在线留言以作解决. 下列文章内容来源于IT新手入门 共享给大伙儿一篇文章,教你如何用Python画了一棵 ...

最新文章

  1. sql server jar包_老王,怎么完整SQL的显示日志,而不是???...
  2. VTK:图片之ImageMagnitude
  3. linux 高级命令
  4. 轴只显示5个刻度_告别大象腿,迎接魅力美腿,变身女王你只需5个方法
  5. Deep Learning基础--Softmax求导过程
  6. 中继链路,以太网通道,DHCP配置
  7. 智能家居系统通信方式,主要有以下四种
  8. GetUserName()第二个参数中指明缓冲区长度
  9. Window10下让自己开发的自启动程序支持拉起一个图形化软件
  10. python 爬虫之路教程
  11. Unity3DShader基础(CG)
  12. NOIP2016普及组T1(买铅笔)题解
  13. 携宠旅行逐渐成为新一代宠物主“刚需”,宠物友好型酒店呈现稀缺
  14. 微信中怎么打开apk文件 微信跳转打开外部浏览器打开apk文件
  15. 多路耦合器(有源分离器)在无线通讯中的应用
  16. 小米笔记本锁屏睡眠无法唤醒修复方法
  17. spyder pyecharts不显示_逆袭的IGZOIPS!微星电竞显示器新品评测:色彩好且拖影少...
  18. unhandled exception in XXX:0xC0000005:access violation问题
  19. 计算机的定点运算器原理,优·计算机组成原理 定点运算器的组成和结构.doc
  20. 麒麟 嵌入式linux操作系统_体验了一下北韩操作系统RedStar红星OS;国产linux优麒麟...

热门文章

  1. suse 安装mysql5.6_SuSE11安装MySQL5.6.40:RPM安装方式
  2. java b kb mb gb 转换_java 上传文件大小转换为 GB/MB/KB/B
  3. pyglet and opengl -- 纹理映射以及动画
  4. Code128条形码
  5. Staple 跟踪: Complementary Learners for Real-Time Tracking
  6. Invalid argument(s) 'pool_size' sent to create_engine(), using configuration
  7. Error(s) in loading state_dict for ModelMain
  8. Haar Adaboost 视频车辆检测代码和样本
  9. 二叉树深度优先遍历和广度优先遍历
  10. 7.pip工具的使用