Python WordCloud 修改色调的实现方式
本文介绍如何在Python中使用WordCloud库修改词云图的色调。通过定义color_func参数,利用HSL颜色模型控制色相(h)范围,可将默认随机色改为特定冷色调或统一颜色。文章提供了基于源代码的自定义颜色函数及简化为单一颜色的两种实现方式,并附带完整可运行代码示例。
WordCloud 修改色调的方法
在生成词云图时,若发现部分文字颜色为黄色导致辨识度低,通常需要将整体色调调整为冷色调以提升视觉效果。
具体操作如下:
WordCloud库提供了color_func参数,允许用户自定义颜色生成逻辑。
自定义颜色函数实现
def random_color_func(word=None, font_size=None, position=None, orientation=None, font_path=None, random_state=None):
h = randint(120,250)
s = int(100.0 * 255.0 / 255.0)
l = int(100.0 * float(randint(60, 120)) / 255.0)
return "hsl({}, {}%, {}%)".format(h, s, l)
在该函数中,变量h代表颜色的色相取值范围。开发者可通过查阅颜色选择器(colour picker)文档,了解不同色相值对应的具体颜色表现。
例如,若希望呈现蓝绿色系,可将h的取值范围设定在120到250之间,用户也可根据实际需求调整该区间。
最终在WordCloud初始化参数中传入 color_func = random_color_func即可完成设置。
统一颜色的实现方案
补充说明:若需将WordCloud生成的词云统一为单一颜色,可采用以下方法。
由于官方文档未直接提供统一颜色的操作指南,经查阅源代码后,可提取相关逻辑实现该功能。
从源码中截取的关键代码片段如下:
简化颜色设置代码
color_func=lambda *args, **kwargs: "red"
将该代码片段与其他字体等参数一同赋值给词云对象即可生效,示例如下:
w=wordcloud.WordCloud(font_path='msyh.ttc',mask=mianju,\
width=1000,height=700,background_color='white',mode='RGBA',color_func=lambda *args, **kwargs: "red")
以下是完整代码,将对应的图片和文本文档放置在同一目录下即可运行生成结果。
完整运行代码示例
import jieba
import wordcloud
import imageio
zhezhao=imageio.imread('图片遮罩.jpg')#用imageio替代目前已经移除image的scipy库
f=open('这是一个文本.txt','r',encoding='utf-8')
t=f.read()
f.close()
ls=jieba.lcut(t)
txt=' '.join(ls)
w=wordcloud.WordCloud(font_path='msyh.ttc',mask=zhezhao,\
width=1000,height=700,background_color='white',mode='RGBA',color_func=lambda *args, **kwargs: "red")
w.generate(txt)
w.to_file('这是生成的图片.png')
以上为个人经验分享,旨在提供参考。如有疏漏或错误,欢迎指正。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













