python中具有自定义随机颜色生成的word cloud
我在网上看到了生成单词云的功能,但是我不知道如何在python中具有自定义随机颜色生成的word cloud,python,colors,word-cloud,Python,Colors,Word Cloud,我在网上看到了生成单词云的功能,但是我不知道如何在def_random\u func中更改颜色。比如说,如果我想要橙色,现在代码总是生成一个绿色的单词云。代码如下: import matplotlib.pyplot as plt from wordcloud import WordCloud, STOPWORDS def random_color_func(word=None, font_size=None, position=None, orientation=None, font_path
def_random\u func
中更改颜色。比如说,如果我想要橙色,现在代码总是生成一个绿色的单词云。代码如下:
import matplotlib.pyplot as plt
from wordcloud import WordCloud, STOPWORDS
def random_color_func(word=None, font_size=None, position=None, orientation=None, font_path=None, random_state=None):
h = int(360.0 * 45.0 / 255.0)
s = int(100.0 * 255.0 / 255.0)
l = int(100.0 * float(random_state.randint(60, 120)) / 255.0)
return "hsl({}, {}%, {}%)".format(h, s, l)
file_content = open("rr.txt").read()
wordcloud = WordCloud(font_path=r'C:\Windows\Fonts\Verdana.ttf',
stopwords=STOPWORDS,
background_color='white',
width=1200,
height=1000,
color_func=random_color_func
).generate(file_content)
plt.imshow(wordcloud)
plt.axis('off')
plt.show()
random\u color\u func()
正在创建相同色调但亮度不同的颜色。你只需要决定你想要哪种色调。因此,对于橙色,可以考虑使用<代码> 21 < /代码>的值,例如:
def random_color_func(word=None, font_size=None, position=None, orientation=None, font_path=None, random_state=None):
h = int(360.0 * 21.0 / 255.0)
s = int(100.0 * 255.0 / 255.0)
l = int(100.0 * float(random_state.randint(60, 120)) / 255.0)
return "hsl({}, {}%, {}%)".format(h, s, l)
色调值在0-360
范围内,您可以使用在线颜色选择器查找合适的值(例如,尝试谷歌搜索)。代码只是从另一个常用标准的范围0-255
转换而来。因此,不需要转换,只需将h=30
这将为您提供如下信息:
您可以更改randint范围以使其更亮。您是否尝试过修改该函数以限制其产生的颜色?写一个替代版本?不,我没有,我无法理解我应该调整什么参数?它将颜色限制在HSL颜色立方体的区域,H=45º,s=100%,60