简单中文词云图的制作
之前建模比赛的时候接触过一丢丢,不过用的是别人的模板。自己再写一遍印象更深刻一些。
直接上代码:
import jieba #中文分词
from matplotlib import pyplot as plt #绘图,数据可视化
from wordcloud import WordCloud #词云图
from PIL import Image #图片处理
import numpy as np #矩阵运算
import xlwt
import xlrd
#准备词云所需文字
datas=xlrd.open_workbook('./知网_主题检索_新冠1.3.xlsx')
table=datas.sheets()[0]
quotes=table.col_values(-2)[1:]
print(len(quotes))
quotes=''.join(quotes)
quotes=quotes.replace('\n','').replace('\r','').replace(';','')
print(quotes)
#中文分词
cut=jieba.cut(quotes)
string=' '.join(cut)
print(string)
print(len(string))
#导入一张白底图片
img=Image.open('./词云_树.jpg')
img_array=np.array(img) #将图片转化为数组
wc=WordCloud(
background_color='white',
mask=img_array,
font_path="msyh.ttc" #字体所在位置C:\Windows\Fonts
)
wc.generate_from_text(string)
#绘制图片
fig=plt.figure(1)
plt.imshow(wc)
plt.axis('off') #是否显示坐标轴
plt.show() #显示图片
#plt.savefig('./wordcloud_summary.png',dpi=500) #保存图片 dpi表示图片清晰度
关于代码的复用:将“准备词云所需要的文字”中换成自己的字符串类型数据,导入自己的白底图片;
PS:注意查看本机中有的字体(位置在代码中),选择其中的中文字体。
实现结果: