词云图,文本字体的大小表示文本出现的频率,很直观。
废话不说,上代码:
import numpy as np
from PIL import Image
import os
from os import path
from wordcloud import WordCloud,STOPWORDS,ImageColorGenerator
from matplotlib import pyplot as plt
from matplotlib.pyplot import figure,show,rc
d=path.dirname(__file__)if"__file__"in locals() else os.getcwd()
text=open(path.join(d,"processedname.txt")).read()
wc=WordCloud(font_path="msyh.ttc",#字体路径,英文不用设置路径,中文需要,否则
width=400,#默认宽度
height=400,#默认高度
margin=2,#边缘
ranks_only=None,
prefer_horizontal=0.9,
mask=None,#背景图形,如果想根据图片绘制,则需要设置
scale=2,
color_func=None,
max_words=100,#最多显示的词汇量
min_font_size=4,#最小字号
stopwords=None,#停止词设置,修正词云图时需要设置
random_state=None,
background_color='white',#背景颜色设置,可以为具体颜色,
max_font_size=None,#最大字号
font_step=1,
mode='RGB',
relative_scaling='auto',
regexp=None,
collocations=True,
colormap='Reds',# matplotlib颜色主题,可更改名称,进而更改整体风格
normalize_plurals=True,
contour_width=0,
contour_color='black',
repeat=False)
wc.generate_from_text(text)
fig=figure(figsize=(4,4),dpi=600)
plt.imshow(wc,interpolation='bilinear')
plt.axis('off')
plt.tight_layout()
plt.savefig('ciyuntu.png')
plt.show()
缺模块记得安装
pip install 库名
文本存在同路径下processedname.txt中,英文逗号分隔,词云图保存在同路径下ciyuntu.png中。
注意文本是中文的话,需要提供字体路径,把字体文件放在同路径下,可以在网上下载,不一定是msyh.ttc
结果图:
有问题欢迎评论!
没问题给个好评~