Python词云wordcloud

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) 将词云输出为图像格式,可为jpgpng格式

配置对象参数

参数 描述
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

发布了42 篇原创文章 · 获赞 23 · 访问量 2302

猜你喜欢

转载自blog.csdn.net/qq_40710190/article/details/104138923