python怎么制作词云图,python生成词云的代码
前言
今天,焦大使用wrodcloud模块生成了word cloud。我看了一本小说,生成了词云。我们先来看看效果图:
效果图1:
效果图2:
根据效果图分析,还是挺准的。小说中的主人公是李成,所以他出现的频率最高。图片有两种模式,一种是默认模式,一种是添加图片作为背景。下面我带大家学习一下如何生成单词云!
wordcloud的安装
对于新人来说,安装wordcloud模块是一个很大的标志。我们一般通过Pycharm或者PIP来安装,但是在安装wordcloud的时候会提示错误,如下:
我的解决方法是直接访问下面的网址,根据你的电脑和py版本下载相应的whl文件。
https://www.lfd.uci.edu/~gohl.
下载后,将whl文件放在pip路径中,并输入以下代码。记住代码的whl文件名必须是适合你的那个。我只是给你举个例子:
在PISTALLWordCloud-1 . 4 . 1-CP36-CP36m-Win32之后。WHL运行,它将显示安装成功。
wordcloud的简单用法
Word的基本方法,参见源代码如下:
每个参数大家都要一目了然。除此之外,wordcloud中还有其他几种方法,比如fit_words、generate(text)、to_file(filename)等等,都非常容易理解。
wordcloud生成词云
效果1的代码:
fromwordcloudimportWordCloud
Importmatplotlib。用于绘制图像的pyplotplt #模块
Importjieba#jieba分词
path _ txt= c ://Users/Administrator/Desktop/all . txt
f=open(path_txt, r ,encoding=UTF-8 )。阅读()
#结巴分词,生成字符串,wordcloud无法直接生成正确的中文词云。
cut_text=“”。join(jieba.cut(f))
wordcloud=WordCloud(
#设置字体,否则会出现乱码。文本的路径是计算机字体的一般路径,可以更改为其他路径。
font _ path= c :/Windows/Fonts/sim Fang . TTF ,
#设置背景、宽度和高度
background_color=white ,宽度=1000,高度=880)。生成(剪切文本)
plt.imshow(wordcloud,interpolation=双线性)
plt.axis(“关”)
plt.show()运行后:
图2,给字云添加图片背景,代码如下:
fromPILimportImage
fromwordcloudimportWordCloud,ImageColorGenerator
importmatplotlib.pyplotasplt
importnumpyasnp
importjieba
defGetWordCloud():
path _ txt= c ://Users/Administrator/Desktop/all . txt
path _ img= c ://用户/管理员/桌面/timg.jpg
f=open(path_txt, r ,encoding=UTF-8 )。阅读()
background _ image=NP . array(image . open(path _ img))
#口吃分词,并生成一个字符串。如果不使用分词,就无法直接生成正确的中文词云。感兴趣的朋友可以去看看。分词模式有很多种。
#Pythonjoin()方法用于用指定的字符连接序列中的元素,以生成新的字符串。
cut_text=“”。join(jieba.cut(f))
wordcloud=WordCloud(
#设置字体,否则会出现乱码。文本的路径是计算机字体的一般路径,可以更改为其他路径。
font _ path= c :/Windows/Fonts/sim Fang . TTF ,
background_color=白色,
#mask参数=图片背景,必须写。另外,用mask参数设置宽度和高度是无效的。
mask=背景_图像)。生成(剪切文本)
#生成颜色值
image _ colors=ImageColorGenerator(background _ image)
#以下代码显示了显示图片。
PLT . im show(word cloud . re color(color _ func=image _ colors),interpolation=双线性)
plt.axis(“关”)
plt.show()
if__name__==__main__:
GetWordCloud()运行后:
热门IT软件开发工作室,大量免费python视频教程,欢迎在线学习!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。