词云wordcloud的蒙版mask能运行但显示不出来

词云wordcloud的蒙版mask能运行但显示不出来

# 进行英文词云生成
from wordcloud import WordCloud
import matplotlib.pyplot as plt
import numpy as np
from PIL import Image
from imageio import imread
 
path = 'C://Users//Wang Ming//Desktop//毕业论文//素材//'
 
# 打开文本
text = open(path + '奥克朗词云.txt',encoding='utf-8').read()
re_move = [',', '。', '\n', '\xa0', '-', '(', ')','month','will','Join us','distribute','pm','register','time','Please','contact',
          ]  # 无效数据

# 去除无关数据
for i in re_move:
    text = text.replace(i, "")
    
backgroud_Image=plt.imread('C://Users//Wang Ming//Desktop//毕业论文//素材//书.jpg')
backgroud_Image=imread('C://Users//Wang Ming//Desktop//毕业论文//素材//书.jpg')

# 生成对象
wc = WordCloud(mask=backgroud_Image,
              background_color='LavenderBlush').generate(text)

# 显示词云
plt.imshow(wc,interpolation='bilinear') #显示图像
plt.axis('off')   #关闭坐标轴
plt.show()
 
# 保存到文件
wc.to_file(path + '奥克朗11.png')

出来的词云是这样的,并没有改变成蒙版图片的形状

img

感觉像是蒙版图片的颜色模式的问题,你可以试试将蒙版图片转换为灰度模式并仅保留单通道,然后再传递给WordCloud的mask的参数,用PIL库中的convert()函数可以实现颜色模式转换,如下:

……
backgroud_Image = Image.open('C://Users//Wang Ming//Desktop//毕业论文//素材//书.jpg').convert('L')
backgroud_Image = np.array(backgroud_Image)
……

可以试试看,希望能帮到你