今天教大家如何用Python制作簡單的詞云,文中有非常詳細的介紹及代碼示例,對于正在學習Python的小伙伴們也能看的懂,需要的小伙伴可以參考下,
一、準備
詞云制作所必需的三個包:
- 安裝:pip install matplotlib
- 安裝:pip install jieba
- 安裝:pip install wordcloud
(可能還需要其他包:pip install numpy等等,可以自行添加)
二、簡單詞云
效果展示:

參考代碼:
import matplotlib.pyplot as plt # 在任何繪圖之前,我們需要一個figure物件,可以理解成我們需要一張畫板才能開始繪圖
import jieba # jieba庫是中文分詞的第三方庫(中文文本需要通過分詞獲得單個的詞語)
from wordcloud import WordCloud # 匯入wordcloud庫
text = open(r'test.txt', "r").read() # 讀入txt文本資料,在字串前面加上字符r或R之后表示原始字串,字串中的任意字符都不再進行轉義,后一個r表示“只讀”
cut_text = jieba.cut(text) # 結巴中文分詞,生成字串,默認精確模式,如果不通過分詞,無法直接生成正確的中文詞云
result = " ".join(cut_text) # 必須給個符號分隔開分詞結果來形成字串,否則不能繪制詞云
# join函式的用法:'sep'.join(seq)引數說明:sep:分隔符,可以為空;seq:要連接的元素序列、字串、元組、字典;即:以sep作為分隔符,將seq所有的元素合并成一個新的字串
# 生成詞云圖,這里需要注意的是WordCloud默認不支持中文,所以這里需已下載好的中文字庫
# 無自定義背景圖:需要指定生成詞云圖的像素大小,默認背景顏色為黑色,統一文字顏色:mode='RGBA'和colormap='pink'
wc = WordCloud(
# 設定字體,不指定就會出現亂碼
background_color='white', # 設定背景色,默認為黑色
width=500, # 設定背景寬
height=350, # 設定背景高
max_font_size=50, # 最大字體
min_font_size=10, # 最小字體
mode='RGBA' # 當引數為“RGBA”并且background_color不為空時,背景為透明
)
wc.generate(result) # 根據分詞后的文本產生詞云
wc.to_file(r"wordcloud.png") # 保存繪制好的詞云圖
plt.imshow(wc) # 以圖片的形式顯示詞云
plt.axis("off") # 關閉影像坐標系,即不顯示坐標系
plt.show() # plt.imshow()函式負責對影像進行處理,并顯示其格式,但是不能顯示,其后必須有plt.show()才能顯示
三、自定義動漫詞云
1.皮卡丘模板:

參考代碼:
import wordcloud
import numpy as np
from PIL import Image # Image模塊是在Python PIL影像處理常用的模塊
import jieba
pic = Image.open("pkq.jpg") # 打開圖片路徑,形成輪廓
shape = np.array(pic) # 影像輪廓轉換為陣列
wc = wordcloud.WordCloud(mask=shape, font_path="simkai.ttf", background_color="white",
max_font_size=100) # mask為圖片背景,font_path為字體,若不設定可能亂碼
text = open(r'poem.txt', "r", encoding='UTF-8').read() # 對中文應該設定編碼方式為utf—8
cut_text = jieba.cut(text)
result = " ".join(cut_text)
wc.generate(result)
wc.to_file("cloud.jpg")
皮卡丘詞云效果圖:

2.小仙女模板:

參考代碼:
import matplotlib.pyplot as plt #數學繪圖庫
from PIL import Image
import numpy as np #科學數值計算包,可用來存盤和處理大型矩陣
import jieba #分詞庫
from wordcloud import WordCloud, ImageColorGenerator #詞云庫
#1、讀入txt文本資料
text = open(r'D:\Python\test\wordcloud\data\english.txt',"r").read()
# 2、結巴分詞:cut_all引數可選, True為全模式,False為精確模式,默認精確模式
cut_text= jieba.cut(text,cut_all=False)
result= "/".join(cut_text)#必須給個符號分隔開分詞結果,否則不能繪制詞云
#3、初始化自定義背景圖片
image = Image.open(r'D:\Python\test\wordcloud\data\backgroud\image1.png')
graph = np.array(image)
#4、產生詞云圖
#有自定義背景圖:生成詞云圖由自定義背景影像素大小決定
wc = WordCloud(font_path=r"D:\Python\test\wordcloud\data\ttf\yahei.ttf",background_color='white',max_font_size=50,mask=graph)
wc.generate(result)
#5、繪制文字的顏色以背景圖顏色為參考
image_color = ImageColorGenerator(graph)#從背景圖片生成顏色值
wc.recolor(color_func=image_color)
wc.to_file(r"D:\Python\test\wordcloud\output\wordcloud.png") #按照背景圖大小保存繪制好的詞云圖,比下面程式顯示更清晰
# 6、顯示圖片
plt.figure("詞云圖") #指定所繪圖名稱
plt.imshow(wc) # 以圖片的形式顯示詞云
plt.axis("off") # 關閉影像坐標系
plt.show()
小仙女詞云效果圖:


點擊領取.福利多多
①行業咨詢、技術交流、大佬在線專業解答有
②Python開發環境安裝教程有
③Python400集自學視頻有
④軟體開發常用詞匯有
⑤Python學習路線圖有
⑥3000多本Python電子書有 如果你用得到的話可以直接拿走,在我的QQ技術交流群里群號:
675240729(純技術交流和資源共享,廣告勿入)以自助拿走
文章到這里結束了,感謝觀看,更多有關Python精彩內容可以關注小編看小編主頁,或點擊上方領取福利,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/287390.html
標籤:python
