一、链接数据库,获取原始数据
import pandas as pd
import pymysql
conn = pymysql.connect(
host="**.**.**.**",
user="z",
password="w",
database="z",
charset="utf8"
)
cursor = conn.cursor() # 执行完毕返回的结果集默认以元组显示
sql1 = "select * from task_hot_word_info a"
df1 = pd.read_sql(sql1, conn)
二、语句切分,去掉停用词
三、词用展示(替换背景图、更改字体颜色)
from wordcloud import WordCloud
import matplotlib.pyplot as plt
import imageio
from wordcloud import WordCloud, ImageColorGenerator
def img_grearte():
msk = np.array(Image.open(r'C:\11.jpg'))
image_colors = ImageColorGenerator(msk)
#mask=imageio.imread(r'C:\Users\lee\Desktop\1.png')
with open(r'C:\txt_save.txt',"r") as file:
txt=file.read()
wc=WordCloud(background_color="white",
font_path='simhei.ttf',
mask=msk,
#contour_color='steelblue'
collocations=False, #比如你的text是“我爱码代码”,当collocations为True时,就会把“码代码”
max_words=5000
)
wc.generate(txt)
wc.to_file(r'C:\test.png')
print("词云图片已保存")
plt.imshow(wc.recolor(color_func=image_colors), interpolation="bilinear")
plt.axis("off")
plt.show()
img_grearte()
四、背景图片的小插曲(踩过的)
最开始下载一张.png的图片,执行不报错,但是词云的背景没有成功更换。后来研究法相,.png的文件读取成数组会比.jpg的多一维度,思考下觉得可能是因为.png有透明背景的缘故。可以用图片打开——另存为的方式转换成.jpg,然后词云背景图就更换了