python 中具有自定义随机颜色生成的词云
word cloud in python with customised random colour generation
我在网上看到了这个生成词云的功能,但是我不知道如何在def_random_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_color_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
范围内,您可以使用在线颜色选择器找到合适的值(例如尝试谷歌搜索 colour picker)。该代码只是从范围 0-255
转换而来,这是另一个通用标准。因此,与其转换,您还可以制作 h = 30
.
这会给你这样的东西:
您可以更改随机范围以使其更亮。
我在网上看到了这个生成词云的功能,但是我不知道如何在def_random_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_color_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
范围内,您可以使用在线颜色选择器找到合适的值(例如尝试谷歌搜索 colour picker)。该代码只是从范围 0-255
转换而来,这是另一个通用标准。因此,与其转换,您还可以制作 h = 30
.
这会给你这样的东西:
您可以更改随机范围以使其更亮。