Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python中具有自定义随机颜色生成的word cloud_Python_Colors_Word Cloud - Fatal编程技术网

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