幾個(gè)代碼畫(huà)出漂亮的詞云圖,python最簡(jiǎn)單的詞云圖教程
在開(kāi)始編寫(xiě)程序之前,我們先了解一下詞云圖的作用,我們拿到一篇文章,想得到一些關(guān)鍵詞,但文章篇幅很大,無(wú)法短時(shí)間得到關(guān)鍵詞,這時(shí)我們可以通過(guò)程序?qū)⑽恼轮械拿總€(gè)詞組識(shí)別出來(lái),統(tǒng)計(jì)每個(gè)詞組出現(xiàn)的次數(shù),出現(xiàn)次數(shù)越多,字號(hào)越大,最后吧所有詞組拼成一張圖,這就是詞云圖了。
現(xiàn)在開(kāi)始寫(xiě)程序
import?jieba
import?wordcloud
import?imageio
首先,我們導(dǎo)入 jieba,wordcloud庫(kù),這2個(gè)庫(kù)是第三方庫(kù),需要自己安裝,imageio是python自帶庫(kù)不需要安裝
安裝方法:
pip install jieba
pip install wordcloud
Ps:因?yàn)槲矣玫氖荳indows系統(tǒng),所以這里只有Windows系統(tǒng)安裝方法,其他系統(tǒng)需要讀者去網(wǎng)上自尋
第二步
我們打開(kāi)需要制作詞云圖的文件
with?open('F:/三國(guó)..txt',encoding='utf-8')?as?f:
????t=f.read()
下面我們將文章中的詞組提出來(lái)
ls=jieba.lcut(t)
txt="?".join(ls)
我們現(xiàn)在已經(jīng)把所有詞組提取出來(lái),以空格分開(kāi),并保存在txt中
下一步,我們需要定義一個(gè)詞云
w=wordcloud.WordCloud(width=2000,
height=1400,
font_path="msyh.ttc")
Width=2000,height=1400及詞云圖,高1400像素,寬2000像素,font_path=”msyh.ttc”,及使用微軟雅黑字體,這些參數(shù)讀者可以隨意修改。
現(xiàn)在我們將詞組變量txt導(dǎo)入詞云對(duì)象w中并保存
w.generate(txt)
w.to_file(r'F:\pic5.png')

如圖所示,我們制作的詞云圖為黑色,且不美觀,不具有可觀性,這時(shí)我們進(jìn)行下一步,對(duì)詞云圖的顏色,型狀進(jìn)行修飾
首先,關(guān)于詞云圖的顏色問(wèn)題,因?yàn)閣ordcloud函數(shù)存在默認(rèn)背景色,改變背景色發(fā)法
w=wordcloud.WordCloud(width=2000,
height=1400,
font_path="msyh.ttc",
background_color='white')
這里我將背景色定義為白色
紫色 purple 粉紅色 pink
藍(lán)色 blue ???紅色 red
黑 色 black 黃 色yellow
青 色 cyan金 色 glod
棕色 brown 白色 white
你也可以使用其他顏色單詞,這時(shí)你可能會(huì)想如何修改字體的顏色
w=wordcloud.WordCloud(width=2000,
height=1400,
font_path="msyh.ttc",
colormap='cool')
colormap是matlab的內(nèi)置函數(shù),內(nèi)涵多種顏色組合的條形漸變圖

關(guān)于其他顏色組合,讀者可以去網(wǎng)上查詢
到了這一步,我們制作的詞云圖顯得有一點(diǎn)高大上,這時(shí)我們想要改變?cè)~云圖的型狀,我們需要自己準(zhǔn)備一張圖片,內(nèi)涵我們想要的圖形,下面,我將以愛(ài)心、皮卡丘為例。
mask=imageio.imread('F:\pi.png')
#F:\pi.png為圖片路徑
w=wordcloud.WordCloud(width=2000,height=1400,font_path="msyh.ttc",mask=mask)


這時(shí)我們得到了我們想要的詞云圖


Ps:注意選取圖片一定要是白底
程序代碼
mport?jieba
import?wordcloud
import?imageio
mask=imageio.imread('F:\pi.png')
with?open('F:/三國(guó)..txt',encoding='utf-8')?as?f:
????t=f.read()
ls=jieba.lcut(t)
txt="?".join(ls)
w=wordcloud.WordCloud(width=2000,height=1400,
font_path="msyh.ttc",colormap='cool',
background_color='white',mask=mask)
w.generate(txt)
w.to_file(r'F:\pic2.png')
