天天看點

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制作中文詞雲圖(官方文檔參數翻譯)