幾行代碼教你使用python製作詞雲(三)
本文將介紹繪製指定圖片(形狀)的詞雲
1.準備數據
我這裏準備了有關葉子的介紹文本(yezi.txt),長度無關緊要,比這個長几倍都是可以的
2.準備所要形狀的圖片
我的是一張楓葉葉子圖,圖片大家可以挑自己喜歡的
3.代碼分析
導入詞雲製作庫wordcloud和中文分詞庫jieba
# 導入詞雲製作庫wordcloud和中文分詞庫jieba
import jieba
import wordcloud
導入imageio庫中的imread函數,並用這個函數讀取本地圖片,作爲詞雲形狀圖片
# 導入imageio庫中的imread函數,並用這個函數讀取本地圖片,作爲詞雲形狀圖片
import imageio
mk = imageio.imread("./input/fengye.jpg")
w = wordcloud.WordCloud(mask=mk)
構建並配置詞雲對象
# 構建並配置詞雲對象w,scale參數用法是提高清晰度
w = wordcloud.WordCloud(background_color='white',
font_path='simsun.ttc',
mask=mk,
scale=15)
中文分詞
# 對來自外部文件的文本進行中文分詞,得到string
file = open('./data/YeZi.txt', encoding='utf-8')
text = file.read()
textlist = jieba.lcut(text)
str = " ".join(textlist)
將str變量傳入w的generate()方法,給詞雲輸入文字
# 將str變量傳入w的generate()方法,給詞雲輸入文字
w.generate(str)
在控制檯繪製並輸出圖像
# 在控制檯繪製並輸出圖像
import matplotlib.pyplot as plt #繪圖
plt.imshow(w,interpolation="bilinear")
plt.axis("off")
將詞雲圖片導出到當前文件夾
# 將詞雲圖片導出到當前文件夾
w.to_file('./output/yezi.png')
運行結果
4.完整代碼
# -*- coding: utf-8 -*-
"""
Created on Mon Jun 1 09:24:07 2020
@author: Jay-L
"""
# 導入詞雲製作庫wordcloud和中文分詞庫jieba
import jieba
import wordcloud
# 導入imageio庫中的imread函數,並用這個函數讀取本地圖片,作爲詞雲形狀圖片
import imageio
mk = imageio.imread("./input/fengye.jpg")
w = wordcloud.WordCloud(mask=mk)
# 構建並配置詞雲對象w,注意要加scale參數,提高清晰度
w = wordcloud.WordCloud(background_color='white',
font_path='simsun.ttc',
mask=mk,
scale=15)
# 對來自外部文件的文本進行中文分詞,得到string
file = open('./data/YeZi.txt', encoding='utf-8')
text = file.read()
textlist = jieba.lcut(text)
str = " ".join(textlist)
# 將str變量傳入w的generate()方法,給詞雲輸入文字
w.generate(str)
# 在控制檯繪製並輸出圖像
import matplotlib.pyplot as plt #繪圖
plt.imshow(w,interpolation="bilinear")
plt.axis("off")
# 將詞雲圖片導出到當前文件夾
w.to_file('./output/yezi.png')
5.可能報錯
報錯原因:font_path錯誤;
解決方法參考這篇文章 python詞雲製作出現cannot open resource錯誤解決方法