我尝试从数据框创建wordcloud,其中有一列单词和一列用于各自的频率。我还下载了一张我想用作掩码的图片,例如:cloud image
尽管按照显示的例子,我仍然无法使用wordcloud来适应面具。这是我的代码:
from PIL import Image
import pandas as pd
import numpy as np
from wordcloud import WordCloud
import matplotlib.pyplot as plt
df = pd.DataFrame({'word':['time', 'car', 'Peter\'s', 'sky',
'something', 'computer', 'brain', 'plants',
'trees', 'Alien\'s', 'gun', 'eat'],
'freq':[24, 16, 16, 15,
14, 13, 12, 10,
9, 9, 5, 3]})
words = ' '.join(df['word'])
cloud_image = r"C:\Users\L\Documents\Python Scripts\cloud.png"
mask = np.array(Image.open(cloud_image))
wordcloud = WordCloud(max_words=2000,
width=1280,
height=720,
mask=mask)
wordcloud.generate_from_frequencies()
fig, ax = plt.subplots(figsize=(8, 6))
ax.imshow(wordcloud, interpolation='bilinear')
ax.axis("off")
ax.imshow(mask, interpolation='bilinear')
plt.show()
答案 0 :(得分:0)
事实证明,这只是图像大小/类型的问题。它使用了不同的蒙版图像(虽然我之前尝试过两张图片但没有成功,因此发布了帖子)。
答案 1 :(得分:0)
我知道这个问题很旧,但是我只是花了一个小时来尝试使特定的图像用作遮罩。我面临的主要问题是我想用作wordcloud蒙版的图像没有白色(RGB 255,255,255)背景。我最终得到的解决方案是:
结果是具有白色(RGB 255,255,255)背景的原始图像。 wordcloud的面具现在将按您的预期对待您的图像!