python实现词云且更换背景图片

一、链接数据库,获取原始数据

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,然后词云背景图就更换了

五、结果展示
python实现词云且更换背景图片_第1张图片

python实现词云且更换背景图片_第2张图片

你可能感兴趣的:(python,python,开发语言,后端)