【Python 3+】wordcloud詞云入門系列(七):詞云高級玩法之色彩斑斕

【本文目錄】
一、自定義給詞云點顏色看看
二、詞云按模板圖像上色方法
三、詞云按模板圖像上色示例——小王子與狐貍朋友


一、自定義給詞云點顏色看看

test16_imread_TheLittlePrince.jpg

test17_imread_TheLittlePrince_fox.jpg

以上兩張圖是【Python】wordcloud詞云入門系列(六):詞云高級玩法之造型七十二變
展示的,wordcloud為顯示的詞語采取了同樣的色彩方案,隨機配色。
形狀輪廓線粗細和顏色是自定義了contour_width和contour_color兩個參數(shù)。

那如果想要自己定義顏色,有辦法嗎?
答案就是本文的中心了。

二、詞云按模板圖像上色方法

還記得嗎?
在本系列第二篇文章介紹了wordcloud相關(guān)API,除了WordCloud類,還有個ImageColorGenerator類一直還在幕后呢,現(xiàn)在是時候它請上臺了。
具體可點擊查閱 【Python】wordcloud詞云入門系列(二):安裝與WordCloud類等API介紹
ImageColorGenerator(image, default_color=None)是基于彩色圖像的顏色生成器。根據(jù)RGB圖像生成顏色。單詞將使用彩色圖像中包圍的矩形的平均顏色進行著色。構(gòu)造后,該對象充當(dāng)可調(diào)用對象,可以作為color_func傳遞給詞云構(gòu)造函數(shù)或recolor方法。
此外,還需定義WordCloud類中的color_func參數(shù)對詞云進行重新著色。

三、詞云按模板圖像上色示例——小王子與狐貍朋友

原始圖像
——此圖來源:百度圖片 點此處可跳轉(zhuǎn)查看

test17_TheLittlePrince_fox_source.jpg

模板圖像

test17_TheLittlePrince_fox_mask.png

代碼示例

import wordcloud
import jieba
import imageio

# 讀取當(dāng)前項目路徑中的.txt文件
with open("test16_TheLittlePrince.txt",'r',encoding='utf-8')  as f:
    text = f.read()
# 將讀取的外部文件進行jieba分詞,并賦值變量
jieba_text = ' '.join(jieba.cut(text))

# 使用imread()函數(shù)讀取外部詞云形狀圖像文件(顏色模板也采用該圖像)
mk = imageio.imread("test17_TheLittlePrince_fox_mask.png")

# 使用ImageColorGenerator類根據(jù)獲取的模板圖像生成顏色,并賦值變量
color_new = wordcloud.ImageColorGenerator(mk)

# 實例化詞語對象
w = wordcloud.WordCloud(font_path='msyh.ttf',
                        scale=6,
                        max_words=20000,
                        background_color='white',
                        contour_width=25,  # 詞云形狀邊寬寬度
                        contour_color='gray',  # 詞云形狀邊寬顏色
                        color_func=color_new,  # 將上面模板圖像生成的顏色傳入詞云
                        mask=mk  # 將上面獲取的形狀圖像文件傳入詞云
                        )
                        
#  調(diào)用generate()方法將jieba分詞文字結(jié)果傳入詞云
w.generate(jieba_text)

#  調(diào)用to_file()方法生成詞云圖像文件至當(dāng)前項目路徑下
w.to_file("test18_TheLittlePrince_fox_recolor.jpg")

輸出成果

test18_TheLittlePrince_fox_recolor.jpg

嘿嘿~是不是大不一樣了呀?還是漸變色呢!

test18_TheLittlePrinceFoxRecolorMergeFH.jpg

方法就在這里。
詞云可以千奇百態(tài),也可以色彩斑斕,任由你玩。


好啦,整個【Python】wordcloud詞云入門系列就到這里吧。其實,就wordcloud還有很多更高端玩法,但需要更多、更深入的學(xué)習(xí)才可以,關(guān)鍵還是基礎(chǔ)知識的學(xué)習(xí)和掌握,這樣才能飛得很高很遠在「python」的世界,不是嗎?

引用轉(zhuǎn)載還請注明作者說明出處喲!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。