词云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')
出来的词云是这样的,并没有改变成蒙版图片的形状
感觉像是蒙版图片的颜色模式的问题,你可以试试将蒙版图片转换为灰度模式并仅保留单通道,然后再传递给WordCloud的mask的参数,用PIL库中的convert()函数可以实现颜色模式转换,如下:
……
backgroud_Image = Image.open('C://Users//Wang Ming//Desktop//毕业论文//素材//书.jpg').convert('L')
backgroud_Image = np.array(backgroud_Image)
……
可以试试看,希望能帮到你