python詞雲庫wordcloud自定義詞雲制作步驟分享
wordcloud庫常規方法
import wordcloud c=wordcloud.WordCloud() #構建詞雲對象,配置對象參數 c.generate("wordcloud by python ") #加載詞雲文本 c.to_file("pywordcloud.png") #輸出詞雲文件
詞雲生成步驟:
- 分隔:以空格分隔單詞
- 統計:單詞出現次數並過濾(1-2個字母會被濾掉)
- 字體:根據統計配置字號
- 佈局:顏色環境尺寸
c=wordcloud.WordCloud(參數) 配置對象參數
參數(像素) | 描述 |
---|---|
width(默認400px) | c=wordcloud.WordCloud(width=600) |
height(默認200px) | c=wordcloud.WordCloud(height=400) |
min_font_size(默認4號) | c=wordcloud.WordCloud(min_font_size=10) |
max_font_size(根據高度自動調節) | c=wordcloud.WordCloud(max_font_size=20) |
font_step(默認1,步長) | c=wordcloud.WordCloud(font_step=2) |
font_path(默認None,字體路徑) | c=wordcloud.WordCloud(font_path="msyh.ttc") |
max_words(默認200,最大數量) | c=wordcloud.WordCloud(max_words=20) |
stop_words(指定去除單詞的列表) | c=wordcloud.WordCloud(stop_words={"python"}) |
background_color(默認黑色,詞雲背景色) | c=wordcloud.WordCloud(background_color="red") |
Scale 默認值1。值越大,圖像密度越大越清晰
mask參數自定義詞雲形狀:
#指定詞雲形狀,默認是長方形,需要引用imread()函數 from scipy.misc import imread mk=imread("pic.png") c=wordcloud.WordCloud(mask=mk)
第三方庫
- numpy :多維數組運算
- matplotlib :繪圖與數據可視化
- pillow :圖片處理
- wordcloud :詞雲制作
- imageio :圖像輸入輸出
- jieba :中文分詞
- snownlp :中文情感和自然語言處理
- itchat :微信好友抓取
讀取文件
政府工作報告詞雲:
import wordcloud # 從外部.txt文件中讀取大段文本,存入變量txt中 f = open('政府工作報告.txt',encoding='utf-8') txt = f.read() # 構建詞雲對象w,設置詞雲圖片寬、高、字體、背景顏色等參數 w = wordcloud.WordCloud(width=1000, height=700, background_color='white', font_path='msyh.ttc') # 將txt變量傳入w的generate()方法,給詞雲輸入文字 w.generate(txt) # 將詞雲圖片導出到當前文件夾 w.to_file('Test1.png')
==wordcloud中文分詞(適合中文詞雲)==
# 導入詞雲制作庫wordcloud和中文分詞庫jieba import jieba import wordcloud # 構建並配置詞雲對象w w = wordcloud.WordCloud(width=1000, height=700, background_color='white', font_path='msyh.ttc') # 調用jieba的lcut()方法對原始文本進行中文分詞,得到string txt = '由於Python語言的簡潔性、易讀性以及可擴展性, \ 在國外用Python做科學計算的研究機構日益增多, \ 一些知名大學已經采用Python來教授程序設計課程。 \ 例如卡耐基梅隆大學的編程基礎、 \ 麻省理工學院的計算機科學及編程導論就使用Python語言講授。' txtlist = jieba.lcut(txt) string = " ".join(txtlist) # 將string變量傳入w的generate()方法,給詞雲輸入文字 w.generate(string) # w.generate(" ".join(jieba.lcut(txt))) #三段代碼合一簡寫 # 將詞雲圖片導出到當前文件夾 w.to_file('Teste2.png')
自定義繪制指定形狀的詞雲
import jieba import wordcloud from scipy.misc import imread mask=imread("圖片形狀.png") #導入自定義形狀圖片賦給mask # 從外部.txt文件中讀取大段文本,存入變量txt中 f = open('政府工作報告.txt',encoding='utf-8') txt = f.read() #閱讀提取 f.close() #關閉 # 構建詞雲對象w,設置詞雲圖片寬、高、字體、背景顏色等參數 w = wordcloud.WordCloud(width=1000, height=700, background_color='white',mask=mask, font_path='msyh.ttc') # 將txt變量傳入w的generate()方法,給詞雲輸入文字 w.generate(" ".join(jieba.lcut(txt))) # 將詞雲圖片導出到當前文件夾 w.to_file('Test1.png')
==勾勒詞雲輪廓==
# 導入詞雲制作庫wordcloud import wordcloud # 將外部文件包含的文本保存在string變量中 string = open('hamlet.txt').read() # 導入imageio庫中的imread函數,並用這個函數讀取本地圖片,作為詞雲形狀圖片 import imageio mk = imageio.imread("ren.png") # 構建詞雲對象w,註意增加參數contour_width和contour_color設置輪廓寬度和顏色 w = wordcloud.WordCloud(background_color="white", mask=mk, contour_width=1, contour_color='steelblue' ) # # 將string變量傳入w的generate()方法,給詞雲輸入文字 w.generate(string) # 將詞雲圖片導出到當前文件夾 w.to_file('p2.png')
==按模板自身顏色繪制詞雲==
# 導入繪圖庫matplotlib和詞雲制作庫wordcloud import matplotlib.pyplot as plt from wordcloud import WordCloud,ImageColorGenerator # 將外部文件包含的文本保存在text變量中 text = open('alice.txt').read() # 導入imageio庫中的imread函數,並用這個函數讀取本地圖片queen2.jfif,作為詞雲形狀圖片 import imageio mk = imageio.imread("alice.png") # 構建詞雲對象w wc = WordCloud(background_color="white", mask=mk,) # 將text字符串變量傳入w的generate()方法,給詞雲輸入文字 wc.generate(text) # 調用wordcloud庫中的ImageColorGenerator()函數,提取模板圖片各部分的顏色 image_colors = ImageColorGenerator(mk) # 顯示原生詞雲圖、按模板圖片顏色的詞雲圖和模板圖片,按左、中、右顯示 fig, axes = plt.subplots(1, 3) # 最左邊的圖片顯示原生詞雲圖 axes[0].imshow(wc) # 中間的圖片顯示按模板圖片顏色生成的詞雲圖,采用雙線性插值的方法顯示顏色 axes[1].imshow(wc.recolor(color_func=image_colors), interpolation="bilinear") # 右邊的圖片顯示模板圖片 axes[2].imshow(mk, cmap=plt.cm.gray) for ax in axes: ax.set_axis_off() plt.show() # 給詞雲對象按模板圖片的顏色重新上色 wc_color = wc.recolor(color_func=image_colors) # 將詞雲圖片導出到當前文件夾 wc_color.to_file('out-alice.png')
到此這篇關於python詞雲庫wordcloud自定義詞雲制作步驟分享的文章就介紹到這瞭,更多相關python wordcloud詞雲制作內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- Python詞雲的正確實現方法實例
- python wordcloud庫實例講解使用方法
- Python導出並分析聊天記錄詳解流程
- Python將QQ聊天記錄生成詞雲的示例代碼
- Python爬取你好李煥英豆瓣短評生成詞雲的示例代碼