import jieba # 分词 from wordcloud import WordCloud # 词云图相关 import matplotlib.pyplot as plt import matplotlib.colors as colors # 处理图片相关内容 import numpy from PIL import Image,ImageFont # 生成词云方法(指定背景图) def get_wcloud(): # 读取小说内容 with open(r'例子.txt', 'r', encoding='utf-8') as txt: data = txt.read() # 加载词典 jieba.load_userdict('stopwords.txt') # 也可以添加自定义词典 words_list = jieba.lcut(data) # 用空格分隔词语 tokenstr = ' '.join(words_list) # 打开背景图片 color_mask = numpy.array(Image.open('鲸鱼.jpg')) # 自定义文字颜色 colormaps = colors.ListedColormap(['#FF0000','#FF7F50','#FFE4C4']) # 生成词云(默认样式) # mywc1 = WordCloud().generate(tokenstr) # 生成词云(自定义样式) mywc1 = WordCloud( mask=color_mask, # 指定背景图形状 colormap=colormaps, # 指定颜色 font_path = r'/msyh.ttc', # 指定字体 background_color='white', # 指定背景颜色,默认黑色 width=800, # 指定宽度 height=600 # 指定高度 ).generate(tokenstr) # 显示词云 plt.imshow(mywc1) plt.axis('off') plt.show() mywc1.to_file('2.png') # 生成词云图片 if __name__ == '__main__': get_wcloud()