使用python製作詞雲
環境問題:
製作詞雲需要使用wordcloud,matplotlib模塊,wordcloud中要使用空格隔開的文本。
windows下據說是要使用Anaconda,我是在linux下操作的,直接命令裝環境就行了
分開文本,英文比較方便,中文分開文本,中文可以使用jiba模塊。先不說這一部分
先看代碼:
# coding=utf-8
from wordcloud import WordCloud
import sys, cv2
filename = sys.argv[1]
mytext = open(filename, encoding='utf8').read() # 打開文本
wc1 = WordCloud(
background_color='Black', # 背景色
width=2000, # 寬度
height=1000, # 高度
font_path='STXINWEI.TTF', # 字體文件,此處與py文件放在同一目錄
margin=1 # 詞語邊緣距離
)
wc2 = wc1.generate(mytext) # 繪製詞雲
'''保存圖片'''
filename = '{}.png'.format(filename)
wc2.to_file(filename)
'''顯示圖片'''
img = cv2.imread(filename)
cv2.imshow('img', img)
cv2.waitKey(0)
使用時:
python3 test.py mytext.txt
本處使用的文本文件內的數據已經是空格分開的文本。
也可以使用使用matplotlib,matplolib中pyplot的代碼需要修改dpi的,否則生成的詞雲不清晰,詞雲太小,pyplot默認的dpi是100,使用默認dpi會使圖片很小,稍微放大就不能看了。我修改的600。具體多少看自己。推薦使用上面一份代碼。
第二份代碼:
# pyplot保存,顯示圖片
from matplotlib import pyplot as plt
plt.rcParams['figure.dpi'] = 600 # 修改dpi
plt.rcParams['savefig.dpi']=600 # 修改dpi
plt.axis('off')
plt.imshow(wc2)
plt.savefig('{}.jpg'.format(filename))
plt.show()
上效果圖:
英文的:
中文的