| 類 | 功能 |
|---|---|
| WordCloud([font_path, width, height, …]) | 生成和繪制詞云對象 |
| ImageColorGenerator(image[, default_color]) | 基于圖片的色彩 |
| random_color_func([word, font_size, …]) | 隨機生成顏色 |
| get_single_color_func(color) | 創建一個顏色函數,它返回一個色調和飽和度 |
1、WordCloud類
class wordcloud.WordCloud( font_path=None, width=400, height=200, margin=2, ranks_only=None, prefer_horizontal=0.9, mask=None, scale=1, color_func=None, max_words=200, min_font_size=4, stopwords=None, random_state=None, background_color='black', max_font_size=None, font_step=1, mode='RGB', relative_scaling='auto', regexp=None, collocations=True, colormap=None, normalize_plurals=True, contour_width=0, contour_color='black', repeat=False, include_numbers=False, min_word_length=0, collocation_threshold=30)
2、WordCloud參數詳解
| 參數 | 詳解 |
|---|---|
| font_path | 詞云圖的字體路徑(OTF或TTF格式) |
| width | 畫布的寬度、默認為400,如果mask不為空時,設置為mask獲取圖片的大小 |
| height | 畫布的高度,默認為200,如果mask不為空時,設置為mask獲取圖片的大小 |
| prefer_horizontal | 默認值0.9;當值1時,遇到不合適的地方時,算法將詞體自動旋轉 |
| mask | 默認為None;如果不為空,指定了畫布的圖形,則width和height值不生效,使用提供的圖形的大小 |
| contour_width | 如果mask不為空,并且contour_width>0,將描繪出mask獲取圖片的輪廓,值越大,輪廓的線越粗 |
| contour_color | 使用Mask時,描繪圖片輪廓的顏色 |
| scale | 圖片生成后放大縮小時的分辨率 |
| min_font_size | 詞云圖顯示的最小字體,默認為4 |
| max_font_size | 詞云圖顯示的最大字體 |
| max_words | 詞云顯示的最大詞數 |
| font_step | 字體步長 |
| stopwords | 不顯示的詞,如果沒有設置,則使用默認的內置的STOPWORdS列表;如果使用generate_from_frequencies參數,則忽略 |
| background_color | 背景顏色 |
| mode | 默認為"RGB",當mode="RGBA"并且background_color為None時,將會顯示透明背景 |
| relative_scaling | 字體大小與詞頻的關系,默認值為auto |
| color_func | 默認為None,color_func=lambda *args, **kwargs:(255,0,0)詞云的字體顏色將這設置為紅色 |
| regexp | 使用正則切分,默認為r"\w[\w']+",如果使用generate_from_frequencies則此參數不生效 |
| collocations | 是否包含兩個詞的搭配,默認為True,如果使用generate_from_frequencies則此參數不生效 |
| colormap | 設置顏色的參數,默認為"viridis",如果使用color_func參數,則此參數不生效 |
| normalize_plurals | 是否刪除尾隨的詞,比如's,如果使用generate_from_frequencies參數,則此參數不生效 |
| repeat | 是否重復詞組直到設置的最大的詞組數 |
| include_numbers | 是否包含數字,默認我False |
| min_word_length | 最小數量的詞,默認為0 |
| collocation_threshold | 默認為30,整體搭配的評分等級 |
3、WordCloud類方法詳解
| 方法 | 功能 |
|---|---|
| fit_words() | 根據詞頻生成詞云 |
| generate_from_frequencies() | 根據詞頻生成詞云 |
| generate() | 根據文本生成詞云 |
| generate_from_text() | 根據文本生成詞云 |
| process_text() | 將長文本分詞,并去除屏蔽詞 |
| recolor() | 對輸出顏色重新著色 |
| to_array() | 轉換為numpy數組 |
| to_file() | 保存為圖片文件 |
| to_svg() | 保存為SVG(可縮放矢量圖形) |
1、簡單圖案

代碼:
import wordcloud
# 詞云使用的文字
text = "lemon"
# 使用wordcloud.WordCloud類,并傳入相關的參數
wc = wordcloud.WordCloud(background_color="white", repeat=True)
wc.generate(text)
# 保存圖片
wc.to_file('test1.png')
2、自定義圖片

代碼:
import wordcloud
# 導入imageio庫中的imread函數,并用這個函數讀取本地圖片,作為詞云形狀圖片
import imageio
mk = imageio.imread("333.jpg")
# 詞云使用的文字
text = "lemon"
# 使用wordcloud.WordCloud類,并傳入相關的參數
wc = wordcloud.WordCloud(background_color="white", repeat=True,mask=mk)
wc.generate(text)
# 保存圖片
wc.to_file('test1.png')
3、從文本讀取

代碼:
import wordcloud
import jieba
# 導入imageio庫中的imread函數,并用這個函數讀取本地圖片,作為詞云形狀圖片
import imageio
mk = imageio.imread("chen.jpg")
# 使用wordcloud.WordCloud類,并傳入相關的參數
wc = wordcloud.WordCloud(background_color="white",
prefer_horizontal=0.5,
repeat=True,
mask=mk,
font_path='/System/Library/Fonts/STHeiti Light.ttc',
contour_width=2,
contour_color='pink',
collocation_threshold=100,
)
# 對來自外部文件的文本進行中文分詞,得到string
f = open('gong.txt', encoding='utf-8')
txt = f.read()
txtlist = jieba.lcut(txt)
string = " ".join(txtlist)
# 將string變量傳入w的generate()方法,給詞云輸入文字
wc.generate(string)
# 保存圖片
wc.to_file('test.png')
到此這篇關于Python詞云的正確實現方法的文章就介紹到這了,更多相關Python詞云實現內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!