python词云图-----wordcloud

常规步骤:

  1. 读取文本,需要先分词( jieba.lcut() )并组成空格分隔字符串)( ’ '.join() )
  2. 自定义停词,注意最终需要为集合形式
  3. 设置词云图形状( numpy和Image库)
  4. 生成wordcloud对象,并设置大小,停词,形状,字体(如果是中文,必须设置字体)
  5. 生成词云图 ( wc.generate(‘分隔好的一个长字符串’) )
  6. 展示词云图 ( 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)#显示