在Python中使用WordCloud更改单词颜色

2024-05-20 15:01:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用Python中的word cloud创建我的WordCloud。 这是我的文本,名为tmp contact contact contact contact contact contact contact contact contact contact contact contact contact contact contact contact contact contact contact contact contact contact contact contact contact contact contact contact contact contact contact contact science science science science area area area die die groove groove line line nonlinearity nonlinearity damper damper press press symmetric symmetric soliton soliton cast publish node textured real deterministic car segment kinematics

我创建单词cloud的代码如下所示:

wordcloud = WordCloud(background_color='white',max_font_size = 50).generate(tmp)
plt.imshow(wordcloud)
plt.axis('off')
plt.show()

这是我拍的照片。真的很奇怪对吧? 所以我的问题是:

首先,为什么这张图片中有两个contact

其次,如何更改默认颜色设置,使所有这些单词只使用一种特定的颜色,例如对所有单词使用red?我搜索了一下,发现在WordCloud中有一个名为color_function的参数。但我没有得到任何与此相关的信息。

the Picture I got

欢迎大家提出意见和建议! 多谢提前!!


更新

我刚想出第二个问题。

#change the value in return to set the single color need, in hsl format.
def grey_color_func(word, font_size, position,orientation,random_state=None, **kwargs):
    return("hsl(230,100%%, %d%%)" % np.random.randint(49,51))

#create the wordcloud object
wordcloud = WordCloud(background_color='white',max_font_size = 50).generate(tmp)

#change the color setting
wordcloud.recolor(color_func = grey_color_func)

有人知道第二个问题的答案吗?


Tags: thecloudsizecontactpltarea单词tmp
2条回答

你试过加“搭配=假”吗?否则WordCloud会自动尝试形成多重图。

wordcloud = WordCloud(background_color='white',
                      max_font_size = 50,
                      collocations=False
                      ).generate(tmp)

另请参见:https://stackoverflow.com/a/45094775/10220353

我试过你的代码,在WordCloud图片中只有一个“联系人”。

enter image description here

相关问题 更多 >