python词云图-----wordcloud
常规步骤:
- 读取文本,需要先分词( jieba.lcut() )并组成空格分隔字符串)( ’ '.join() )
- 自定义停词,注意最终需要为集合形式
- 设置词云图形状( numpy和Image库)
- 生成wordcloud对象,并设置大小,停词,形状,字体(如果是中文,必须设置字体)
- 生成词云图 ( wc.generate(‘分隔好的一个长字符串’) )
- 展示词云图 ( plt.imshow(wc) )
import matplotlib.pyplot as plt #数据可视化
import jieba #词语切割
import wordcloud #分词
from wordcloud import WordCloud,ImageColorGenerator,STOPWORDS #词云,颜色生成器,停止词
import numpy as np #科学计算
from PIL import Image #读取图片
#对文本进行分词 读取用gbk,是国外设置方便中文的
with open(r'E:\书籍\北京折叠、死亡考试、天渊\14-死亡考试.txt',encoding='gbk') as f:
text=f.read()
wordlist=jieba.lcut(text)
spacelist=' '.join(wordlist)
#自定义分词词典,最后要为集合形式
with open(r'E:\python_pycharm\venv\Lib\site-packages\wordcloud\Chinese_stopword.txt',encoding='utf-8') as f:
stopwords=f.readlines()
stopword_lists=set()
content=[stopword.replace('\n','') for stopword in stopwords]
stopword_lists.update(content)
#词云图形状
backgroud = np.array(Image.open(r'C:\Users\Mr\Desktop\s.png'))
#生成词云图对象
#中文需要设置字体路径,英文不需要
wc=WordCloud(font_path=r'E:\python_pycharm\venv\Lib\site-packages\wordcloud\STXINGKA.TTF',
mask=backgroud,
stopwords=stopword_lists)
#绘制词云图
wc.generate(spacelist)
plt.imshow(wc) #显示词云
plt.axis('off') #关闭x,y轴
plt.show(wc)#显示