【Python 3+】wordcloud词云入门系列(七):词云
【本文目录】
一、自定义给词云点颜色看看
二、词云按模板图像上色方法
三、词云按模板图像上色示例——小王子与狐狸朋友
一、自定义给词云点颜色看看
test16_imread_TheLittlePrince.jpgtest17_imread_TheLittlePrince_fox.jpg
以上两张图是【Python】wordcloud词云入门系列(六):词云高级玩法之造型七十二变
展示的,wordcloud为显示的词语采取了同样的色彩方案,随机配色。
形状轮廓线粗细和颜色是自定义了contour_width和contour_color两个参数。
那如果想要自己定义颜色,有办法吗?
答案就是本文的中心了。
二、词云按模板图像上色方法
还记得吗?
在本系列第二篇文章介绍了wordcloud相关API,除了WordCloud类,还有个ImageColorGenerator类一直还在幕后呢,现在是时候它请上台了。
具体可点击查阅 【Python】wordcloud词云入门系列(二):安装与WordCloud类等API介绍
ImageColorGenerator(image, default_color=None)是基于彩色图像的颜色生成器。根据RGB图像生成颜色。单词将使用彩色图像中包围的矩形的平均颜色进行着色。构造后,该对象充当可调用对象,可以作为color_func传递给词云构造函数或recolor方法。
此外,还需定义WordCloud类中的color_func参数对词云进行重新着色。
三、词云按模板图像上色示例——小王子与狐狸朋友
原始图像
——此图来源:百度图片 点此处可跳转查看
模板图像
代码示例
import wordcloud
import jieba
import imageio
# 读取当前项目路径中的.txt文件
with open("test16_TheLittlePrince.txt",'r',encoding='utf-8') as f:
text = f.read()
# 将读取的外部文件进行jieba分词,并赋值变量
jieba_text = ' '.join(jieba.cut(text))
# 使用imread()函数读取外部词云形状图像文件(颜色模板也采用该图像)
mk = imageio.imread("test17_TheLittlePrince_fox_mask.png")
# 使用ImageColorGenerator类根据获取的模板图像生成颜色,并赋值变量
color_new = wordcloud.ImageColorGenerator(mk)
# 实例化词语对象
w = wordcloud.WordCloud(font_path='msyh.ttf',
scale=6,
max_words=20000,
background_color='white',
contour_width=25, # 词云形状边宽宽度
contour_color='gray', # 词云形状边宽颜色
color_func=color_new, # 将上面模板图像生成的颜色传入词云
mask=mk # 将上面获取的形状图像文件传入词云
)
# 调用generate()方法将jieba分词文字结果传入词云
w.generate(jieba_text)
# 调用to_file()方法生成词云图像文件至当前项目路径下
w.to_file("test18_TheLittlePrince_fox_recolor.jpg")
输出成果
嘿嘿~是不是大不一样了呀?还是渐变色呢!
test18_TheLittlePrinceFoxRecolorMergeFH.jpg方法就在这里。
词云可以千奇百态,也可以色彩斑斓,任由你玩。
好啦,整个【Python】wordcloud词云入门系列就到这里吧。其实,就wordcloud还有很多更高端玩法,但需要更多、更深入的学习才可以,关键还是基础知识的学习和掌握,这样才能飞得很高很远在「python」的世界,不是吗?
引用转载还请注明作者说明出处哟!