【本文目錄】
一、自定義給詞云點顏色看看
二、詞云按模板圖像上色方法
三、詞云按模板圖像上色示例——小王子與狐貍朋友
一、自定義給詞云點顏色看看
以上兩張圖是【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)查看
模板圖像
代碼示例
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")
輸出成果
嘿嘿~是不是大不一樣了呀?還是漸變色呢!
方法就在這里。
詞云可以千奇百態(tài),也可以色彩斑斕,任由你玩。
好啦,整個【Python】wordcloud詞云入門系列就到這里吧。其實,就wordcloud還有很多更高端玩法,但需要更多、更深入的學(xué)習(xí)才可以,關(guān)鍵還是基礎(chǔ)知識的學(xué)習(xí)和掌握,這樣才能飛得很高很遠在「python」的世界,不是嗎?
引用轉(zhuǎn)載還請注明作者說明出處喲!