数据分析

【Python 3+】wordcloud词云入门系列(七):词云

2019-12-13  本文已影响0人  藝小郴

【本文目录】
一、自定义给词云点颜色看看
二、词云按模板图像上色方法
三、词云按模板图像上色示例——小王子与狐狸朋友


一、自定义给词云点颜色看看

test16_imread_TheLittlePrince.jpg
test17_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参数对词云进行重新着色。

三、词云按模板图像上色示例——小王子与狐狸朋友

原始图像
——此图来源:百度图片 点此处可跳转查看

test17_TheLittlePrince_fox_source.jpg

模板图像

test17_TheLittlePrince_fox_mask.png

代码示例

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_TheLittlePrince_fox_recolor.jpg

嘿嘿~是不是大不一样了呀?还是渐变色呢!

test18_TheLittlePrinceFoxRecolorMergeFH.jpg

方法就在这里。
词云可以千奇百态,也可以色彩斑斓,任由你玩。


好啦,整个【Python】wordcloud词云入门系列就到这里吧。其实,就wordcloud还有很多更高端玩法,但需要更多、更深入的学习才可以,关键还是基础知识的学习和掌握,这样才能飞得很高很远在「python」的世界,不是吗?

引用转载还请注明作者说明出处哟!

上一篇下一篇

猜你喜欢

热点阅读