天天看点

wordcloud制作中文词云图(官方文档参数翻译)

其实早在半年前就使用了这个库,当时由于太忙,没有时间记录,最近比较闲,因此写篇笔记总结一下该库的基本用法。更详细的介绍和例子参见其官网Wordcloud

1.安装

pip install wordcloud
           

2.使用

构造wordcloud类

from wordcloud import WordCloud

wc = WordCloud(参数)

#参数
# font_path:字体文件(OTF或TTF)的路径,字符串

# width:绘图区宽度,默认400,整型

# height:绘图区高度,默认200,整型

# prefer_horizontal:单词倾向于水平放置还是垂直放置,如果值小于1,则会在不合适的情况下旋转单词,浮点型,默认0.9

# mask:是否在给定的形状内绘制单词,这个参数使我们能够根据给定的轮廓形状绘制各种词云图,当此参数不为None时,width和height将被忽略,nd-array型或None,默认None

# scale:计算过程和实际绘图的比例,浮点型,默认1

# min_font_size:绘图时最小的字体大小,整型,默认4

# font_step:字体大小的迭代步长,大于1时可能会出现错误排列,整型,默认1

# max_words:绘图使用的最大单词数,整型,默认200

# stopwords:排除的单词集,字符串集或None,默认为None时,内置的字符串集将会被使用

# background_color:背景颜色,颜色值,默认为'black'

# max_font_size:绘图时最大字体大小,整型或None,默认为None

# mode:模式,默认为'RGB',当为'RGBA'时,倘若背景颜色为None,则会得到透明的背景

# relative_scaling:单词出现频率对其字体大小的权重,值为0时,只考虑单词排名对字体大小的影响,值为1时,具有2倍出现频率的单词具有2倍的字体大小,一般值设置为0.5最棒,浮点型

# color_func:颜色函数,用于生成不同颜色单词的词云图,默认为None

# regexp:正则表达式,用于分词,默认为 r"\w[\w']+" 

# collocations:是否包括二元词组,布尔型,默认为True

# colormap:颜色图,随机分配颜色给每个单词,如果指定了color_func,则本参数被忽略,字符串或matplotlib colormap型,默认为'viridis'

# normalize_plurals:移除单词末尾的's',布尔型,默认为True
           

属性

wc.words_
#对应频率的词例,字典类型{字符串:浮点数}

wc.layout_
#记录每个单词的值,字体大小,位置,方向以及颜色,由一系列元组组成的列表,每个元组格式为(string, int, (int, int), int, color)
           

方法

wc.generate(text)
#从文本中生成词云图

wc.fit_words(frequencies)
#根据给定单词及频率生成词云图
#frequencies:元组型数组,每个元组包含一个单词及其频率

wc.generate_from_frequencies(frequencies, max_font_size=None)
#根据给定单词及频率生成词云图
#frequencies:字典,包含字符串(单词):浮点数(频率)的值对
#max_font_size:最大字体大小

wc.process_text(text)
#将长文本分词,并移除stopwords集合中的单词
#返回字典,dict (string, int)

wc.recolor(random_state=None, color_func=None, colormap=None)
#重新上色
#random_state:随机种子,整型或None

wc.to_array()
#以numpy矩阵的格式返回词云图

to_file(filename)
#以图片的格式返回词云图
#filename:保存路径
           

根据给定图片的颜色生成颜色函数

from wordcloud import ImageColorGenerator
pic_color=ImageColorGenerator(pic)
           

生成随机颜色(默认的颜色生成方式)

wc.random_color_func(word=None, font_size=None, position=None, orientation=None, font_path=None, random_state=None)
#random_state:如果给定一个随机的对象,会用作它生成随机种子的数字
           

3.例子(jieba分词制作中文词云图)

制作中文词云图时需要jieba库分词(导入前需安装)

# -*- coding:utf-8 -*-
from os import path
import matplotlib.pyplot as plt  #绘制图片
from scipy.misc import imread   #读取图片
from wordcloud import WordCloud,ImageColorGenerator
import jieba  #结巴分词
text_address=path.abspath('test1.txt')
text=open(text_address).read()   #读取文本
text_cut=jieba.cut(text)   #分词
new_textlist=' '.join(text_cut)   #组合
pic_address=path.abspath('pic1.jpg')  
pic=imread(pic_address)  #读取图片
pic_color=ImageColorGenerator(pic)   #根据图片生成颜色函数
wc=WordCloud(background_color='white',    #构造wordcloud类
mask=pic,
max_font_size=40,
random_state=30,
font_path="font.ttf",
max_words=500,
min_font_size=2,
color_func=pic_color)
wc.generate(new_textlist)    #生成词云图
plt.figure()    #画图
plt.imshow(wc)
plt.axis("off")
plt.show()
wc.to_file(path.join(path.dirname('test.txt'),"zjw5.png"))   #保存图片
           
wordcloud制作中文词云图(官方文档参数翻译)
wordcloud制作中文词云图(官方文档参数翻译)

如果觉得这篇文章帮助了您,请打赏一个小红包鼓励作者继续创作哦!!!

wordcloud制作中文词云图(官方文档参数翻译)