gpt4 book ai didi

matplotlib - python中的词云具有三个单独的值

转载 作者:行者123 更新时间:2023-12-03 19:36:46 25 4
gpt4 key购买 nike

我想在 python 中创建一个词云,以便每个词都以数据源的颜色标记
说我有:

comment         Data source
Hello there 1 (red)
Hello! 1 (red)
Hi there 2 (green)
im good 3 (blue)

所以基本上是所有三个评论的词云,其中每个词都使用其各自数据源的颜色,所以你好 => 红色,你好 => 绿色和 im,好 => 蓝色。在“那里”的情况下,对于遇到红色和绿色标签的单词,颜色可能是单独的颜色(比如橙色)
还有一些其他颜色,比如紫色,以防单词出现在蓝色 + 红色标签中,......

我如何在 python 中做同样的事情?我所能做的就是使用以下代码生成一个简单的词云:
from wordcloud import WordCloud, STOPWORDS
import matplotlib.pyplot as plt
wordcloud = WordCloud(
stopwords=STOPWORDS,
background_color='white',
width=1200,
height=1000
).generate(word_string)


plt.imshow(wordcloud)
plt.axis('off')
plt.show()

或者可以简单地在画面中做到这一点?

最佳答案

您需要指定一个 color_func并将其作为关键字参数传递给 Wordcloud .颜色规范必须是有效的 PIL 颜色规范。
一个概念上简单的方法是这样的:

import numpy as np
import matplotlib.pyplot as plt
from wordcloud import WordCloud, STOPWORDS

word_string = ...

def color_func(word, *args, **kwargs):
if word in ['hello']:
color = '#ff0000' # red
elif word in ['hi']:
color = '#00ff00' # green
elif word in ['im', 'good']:
color = '#0000ff' # blue
elif word in ['there']:
color = 'ffa500' # orange
else:
color = '#000000' # black
return color

wc = Wordcloud(..., color_func=color_func, ...)
wc.generate(word_string)

由于编写这样的函数有点乏味,我会定义一个字典,将单词映射到颜色,然后将其封装在一个函数中:
word_to_color = dict()

blue_words = ['im', 'good']
for word in blue_words:
word_to_color[word] = '#0000ff' # blue

# etc

def color_func(word, *args, **kwargs):
try:
color = word_to_color[word]
except KeyError:
color = = '#000000' # black
return color

在后一种情况下,您需要确保定义 color_func 定义 word_to_color .

关于matplotlib - python中的词云具有三个单独的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47829326/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com