詞頻的最佳展示wordcloud的使用方法及自定義背景圖生成詞雲

本文使用的房源網評論分詞結果文件來源於浙工商研究生陳向楠女士,特此表示感謝!

python數據可視化wordcloud是很好的展示分詞詞頻的方式

下載安裝

pip install wordcloud 即可在線下載安裝,如需離線安裝,官方下載安裝即可https://amueller.github.io/word_cloud/

簡單實現

1. generate(txt) :加載文本或者文件,如generate('/u01/test/test.txt')

2. to_file(file_name) :保存圖片並顯示詞雲可視化 

import wordcloud as wc   # 調用

word = wc.WordCloud()  # 設置對象
word.generate("python and java")  # 加載文本
word.to_file("test.jpg")  # 保存圖片

詳細見解

wordcloud做詞頻統計分爲以下幾個步驟:

1 、分隔:以空格分隔單詞  2、統計 :單詞出現的次數並過濾  3、字體:根據統計搭配相應的字號  4 、佈局

來一個測試樣例

import matplotlib.pyplot as plt
import wordcloud as wc

f = open('words_cutstop.txt','r').read()  # 這篇文章是從房源網上爬的評論並分詞

'''設置詞雲樣式'''
wc = wc.WordCloud(
    background_color='white',# 設置背景顏色
    font_path='C:\Windows\Fonts\STZHONGS.TTF',  # 若是有中文的話,這句代碼必須添加,不然會出現方框,不出現漢字
    max_words=100, # 設置最大現實的字數
    stopwords=STOPWORDS,# 設置停用詞
    max_font_size=150,# 設置字體最大值
    random_state=30,# 設置有多少種隨機生成狀態,即有多少種配色方案
    width=1200, # 寬度
    height=800 # 高度
)
wc.generate_from_text(f)
print('開始加載文本')
# 顯示詞雲圖
plt.imshow(wc)
# 是否顯示x軸、y軸下標
plt.axis('off')
plt.show()
wc.to_file("test.jpg")
print('生成詞雲成功!')

自定義背景圖

這裏用mask方法以及胡歌圖像來實現 

import matplotlib.pyplot as plt
import wordcloud as wc
backgroud_Image = plt.imread('man.jpg')
f = open('words_cutstop.txt','r').read()
print('加載圖片成功!')
'''設置詞雲樣式'''
wc = wc.WordCloud(
    background_color='white',# 設置背景顏色
    mask=backgroud_Image,# 設置背景圖片
    font_path='C:\Windows\Fonts\STZHONGS.TTF',  # 若是有中文的話,這句代碼必須添加,不然會出現方框,不出現漢字
    max_words=3000, # 設置最大現實的字數
    stopwords=STOPWORDS,# 設置停用詞
    max_font_size=150,# 設置字體最大值
    random_state=30,# 設置有多少種隨機生成狀態,即有多少種配色方案
    width=1200, # 寬度
    height=800 # 高度
)
wc.generate_from_text(f)
print('開始加載文本')
# 改變字體顏色
img_colors = ImageColorGenerator(backgroud_Image)
# 字體顏色爲背景圖片的顏色
wc.recolor(color_func=img_colors)
# 顯示詞雲圖
plt.imshow(wc)
# 是否顯示x軸、y軸下標
plt.axis('off')
plt.show()
wc.to_file("test.jpg")
print('生成詞雲成功!')

背景圖是我的胡歌偶像(來源於網上)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章