升级wordcloud
pip install wordcloud
引入词云库
import wordcloude
生成对象
w = wordcloud.WordCloud
设置词云库属性
wordcloud = WordCloud(background_color="white",width=1000, height=860, margin=2).generate(f)
详细解释
属性 | 功能 |
---|---|
background_color | 背景颜色,颜色值,默认为'black' |
width | 设置宽度 |
height | 设置高度 |
font_path | 设置字体 |
max_font_size | 绘图时最大字体大小,整型或None,默认为None |
min_font_size | 绘图时最小的字体大小,整型,默认4 |
font_step | 字体大小的迭代步长,大于1时可能会出现错误排列,整型,默认1 |
random_state | 设置有多少种随机生成状态,即有多少种配色方案 |
stopwords | 排除的单词集,字符串集或None,默认为None时,内置的字符串集将会被使用 |
mask | 是否在给定的形状内绘制单词,这个参数使我们能够根据给定的轮廓形状绘制各种词云图,当此参数不为None时,width和height将被忽略,nd-array型或None,默认None |
prefer_horizontal | 单词倾向于水平放置还是垂直放置,如果值小于1,则会在不合适的情况下旋转单词,浮点型,默认0.9 |
scale | 计算过程和实际绘图的比例,浮点型,默认1 |
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:保存路径 |
案例
# -*- 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")) #保存图片


官方文档地址
网友评论