WordCloud词云库快速入门(一)
WordCloud简介
wordcloud是优秀的词云展示第三方库,以词语为基本单位,通过图形可视化的方式,更加直观和艺术的展示文本。
安装
pip install wordcloud#安装
绘制一个超级简单的词云
import wordcloud
c=wordcloud.WordCloud()#1.配置对象参数
wenzi = "He is busy every day. He has many thing to do. He has no time to go home for lunch. He gets home at 7:00 p.m. At home he does the housework. He cooks nice dishes for mother and me."
c.generate(wenzi) #2.加载词云文本
c.to_file("pywordcloud.png")#3.输出词云文件
参数
他是默认输出,看起来有点丑,我们把背景换成白色试试
import wordcloud
c = wordcloud.WordCloud(background_color='white')#1.配置对象参数,背景色换为白色
wenzi = "He is busy every day. He has many thing to do. He has no time to go home for lunch. He gets home at 7:00 p.m. At home he does the housework. He cooks nice dishes for mother and me."
c.generate(wenzi) #2.加载词云文本
c.to_file("pywordcloud.png")#3.输出词云文件
可以看出,我们能通过更改参数来控制WordCloud绘制的词云,以下是常用的参数
fontpath:字符型,用于传入本地特定字体文件的路径(ttf或otf文件)从而影响词云图的字体族 width:int型,用于控制词云图画布宽度,默认为400
height:int型,用于控制词云图画布高度,默认为200
prefer_horizontal:float型,控制所有水平显示的文字相对于竖直显示文字的比例,越小则词云图中竖直显示的文字越多
mask:传入蒙版图像矩阵,使得词云的分布与传入的蒙版图像一致
contour:float型,当mask不为None时,contour参数决定了蒙版图像轮廓线的显示宽度,默认为0即不显示轮廓线
contour_color:设置蒙版轮廓线的颜色,默认为’black’
scale:当画布长宽固定时,按照比例进行放大画布,如scale设置为1.5,则长和宽都是原来画布的1.5倍
min_font_size:int型,控制词云图中最小的词对应的字体大小,默认为4
max_font_size:int型,控制词云图中最大的词对应的字体大小,默认为200
max_words:int型,控制一张画布中最多绘制的词个数,默认为200
stopwords:控制绘图时忽略的停用词,即不绘制停用词中提及的词,默认为None,即调用自带的停用词表(仅限英文,中文需自己提供并传入)
background_color:控制词云图背景色,默认为’black’
mode:当设置为’RGBA’且background_color设置为None时,背景色变为透明,默认为’RGB’
relative_scaling:float型,控制词云图绘制字的字体大小与对应字词频的一致相关性,当设置为1时完全相关,当为0时完全不相关,默认为0.5
color_func:传入自定义调色盘函数,默认为None
colormap:对应
matplotlib
中的colormap调色盘,默认为viridis
,这个参数与参数color_func互斥,当color_func有函数传入时本参数失效repeat:bool型,控制是否允许一张词云图中出现重复词,默认为False即不允许重复词
random_state:控制随机数水平,传入某个固定的数字之后每一次绘图文字布局将不会改变
不同形状的词云
接下来,我们在这个词云的基础上添加一个五角星
利用PIL
模块读取我们的五角星图片文件并转换为numpy数组,作为WordCloud
的mask参数传入:
from PIL import Image
import numpy as np
ziyan_mask = np.array(Image.open(r'C:\Users\Administrator\Desktop\R-C.png'))#读取图片
c = wordcloud.WordCloud(background_color='white',mask = ziyan_mask)#1.配置对象参数,背景色换为白色
wenzi = "He is busy every day. He has many thing to do. He has no time to go home for lunch. He gets home at 7:00 p.m. At home he does the housework. He cooks nice dishes for mother and me."
c.generate(wenzi) #2.加载词云文本
c.to_file("pywordcloud.png")#3.输出词云文件
虽然有点丑,但大概就是这个意思~~~,,,明天见