wordcloud安装
相信很多人在一开始的安装就遇到了问题
命令行指令
pip install wordcloud
可以说是被淘汰了。直接上这里下载wordcloud词云whl文件按首字母排序所以会比较靠后。
需要下载对应的版本,通过命令行指令查看python版本
python
Python 3.8.1 (tags/v3.8.1:1b293b6, Dec 18 2019, 23:11:46) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
我的版本是Python 3.8.1, [MSC v.1916 64 bit (AMD64)]
我们在网站上找到了wordcloud,我对应的版本是
wordcloud‑1.6.0‑cp38‑cp38‑win_amd64.whl
cp对应的是版本号,我是3.8.1.所以下载cp38。然后我是64位理所应当下载后缀为amd64的。一定要对应版本
下载之后我们重新进入命令行。在安装whl文件之前,我们要先造轮子。命令行指令
pip install wheel
造好轮子之后在命令行转到whl文件所在目录后使用指令
pip install wordcloud‑1.6.0‑cp38‑cp38‑win_amd64.whl(这里是你下载文件原名称)
一开始我下载的原文件名字是wordcloud‑1.6.0‑cp38‑cp38‑win_amd64(1).whl用上面的指令提示我
该文件不存在。我的解决方案是从官网又重新下了一遍,原文件名称没有了(1)之后才成功的
那么接下来就是wordcloud的简单介绍
简单入门
词云对象的创建
w=wordcloud.WordCloud()
方法 | 描述 |
---|---|
w.generate(txt) | 将txt加载到词云中,以空格分隔词 |
w.to_file(fname) | 将词云输出为图像格式,可为jpg,png格式 |
配置对象参数
参数 | 描述 |
---|---|
width | 生成图片的宽度 w=wordcloud.WordCloud(width=400) 默认像素400 |
height | 生成图片的高度 w=wordcloud.WordCloud(height=400) 默认像素200 |
min_font_size | 词云中最小字号默认4号 w=wordcloud.WordCloud(min_font_size=10) |
max_font_size | 词云中最大字号根据高度自动调节 w=wordcloud.WordCloud(max_font_size=10) |
font_path | 指定字体文件路径默认为None w=wordcloud.WordCloud(font_path=‘msyh.ttc’) |
max_word | 显示的单词数量,默认20 0 w=wordcloud.WordCloud(max_word=20) |
stop_word | 不显示的单词 w=wordcloud.WordCloud(stop_word={“python”}) |
mask | 词云的形状,默认是长方形,需要引用imread()函数。 form scipy.misc import imread mk=imread(“xxx.png”) w=wordcloud.WordCloud(mask=mk) |
background_color | 指定词云背景颜色,默认黑色 w=wordcloud.WordCloud(background_color=“white”) |
英文词云
import wordcloud
txt="life is short, you need python"
w=wordcloud.WordCloud(background_color="white")
w.generate(txt)
w.to_file("aaa.png")
中文词云
众所周知中文是没有按空格来分词的,所以中文词云要先分词,因此我们需要用到第三方库jieba先进行分词,然后再用.join方法形成一个由空格隔开的中文字符串文本
import wordcloud
import jieba
txt="你好世界"
w=wordcloud.WordCloud(font_path="msyh.ttc"background_color="white")
w.generate(" ".join(jieba.lcut(txt)))
w.to_file("aaa.png")
词云实例
首先我们需要准备一段文本新时代中国特色社会主义
代码先放上了
import jieba
import wordcloud
import matplotlib.pyplot as plt
from imageio import imread
'有些会从scipy.misc引入imread,但是现在会包异常找不到imread所以使用imageio'
f=open("fanme.txt","r",encoding="utf-8")
t=f.read()
f.close()
'中文文本所以需要jieba库分词'
ls=jieba.lcut(t)
'然后用join方法将分词用空格隔开'
str=' '.join(ls)
mk=imread('zhongguoditu.png')
w=wordcloud.WordCloud(font_path="msyh.ttc",width=1000,height=1000,\
background_color="white",mask=mk)
w.generate(str)
'自动展示词云图片'
plt.imshow(w)
plt.axis('off')
plt.show()
'词云图片保存'
w.to_file("zhongguo.ipg")
在生成词云时遇到了一个奇怪的问题,之前无论如何都没办法按照指定的形状生成。但是把imread的图片zhongguoditu.png在画图里拉高或者拉宽以后就成功了。迷惑o((⊙﹏⊙))o