用wordcloud来实现数据可视化
这里需要自己的一个数据库,这个数据库呢是经典的豆瓣250的信息
# @Project :flasdemo
# @File :testCloud
# @Date :2020/12/5 15:37
# @Author :上官豪
# @Email :
# @Software :PyCharm
import jieba #分词
from matplotlib import pyplot as plt #绘图,数据可视化
from wordcloud import WordCloud #词云
from PIL import Image
import numpy as np
import sqlite3
#准备
con = sqlite3.connect('movie250.db')#连接同一路径下的数据库
cur = con.cursor()
spl = 'select introduction from m'#从m表格中获取introduction的一些信息
data = cur.execute(spl)
text = ""
for item in data:
text = text + item[0]
#print(item[0]) #可以测试是否拆分成功
cur.close()
con.close()
#分词
cut = jieba.cut(text)
string = ','.join(cut) #这个就是在拆分的词旁边加上分隔符
img = Image.open(r'.\static\qq.jpg')#打开遮罩图片
img_array = np.array(img)
wc = WordCloud(
background_color='white',#背景色
mask=img_array,#图片数组信息
font_path="方正粗黑宋简体.ttf"#显示的字体样式,可在Windows\Fonts找到字体
)#封装好一个对象
wc.generate_from_text(string)
#绘制图片
fig = plt.figure(1)
plt.imshow(wc)
plt.axis('off')
#plt.imshow()函数负责对图像进行处理,并显示其格式,
#而plt.show()则是将plt.imshow()处理后的函数显示出来。
#plt.show() #注意show里面没有参数
plt.savefig(r'.\static\word.png',dpi=500)
遮罩图片:
重点来了:如果同时使用的show函数和savefig函数,save的图片就是这样
把plt.show()注释掉,显示就是这样
我也不知道原因是什么,希望能获得答案