WordCloud 制作词云(3) --从图片中取色,中文支持

官方教程链接地址
github项目地址

本节主要涉及函数:

1. 从图片中取色

colormap=ImageColorGenerator(color_source_image)
colored_image=word_cloud.recolor(color_func=colormap)
注:颜色来源图像的分辨率大于词云轮廓来源图像的分辨率。

2. 中文支持

2.1 字体文件

word_cloud=WordCloud(font_path='C:/Windows/Fonts/STXINGKA.ttf',...)
利用font_path参数将支持中文的字体路径传递进来,事先下载好相关字体文件(TTF格式)即可显示中文;

2.2 汉语断句

考虑到中文断句的问题,这里安装了jieba模块(一个中文分词模块)
text_list = jieba.cut(text, cut_all=True)#将中文文本信息进行分割
text=' '.join(text_list)#将分割好的文本用空格相连,被wordcloud.generate(text)识别为截断处

代码

#导入相关模块
from wordcloud import WordCloud,ImageColorGenerator
from PIL import Image
import numpy as np
import jieba

#获取文本信息,复制到' '内或者读取文本文件均可
text_for_wordcloud='words that you would like to show, you can copy it here or read a file.不会因为虚度年华而悔恨。'
text_list = jieba.cut(text_for_wordcloud, cut_all=True)
text=' '.join(text_list)
#获取词云轮廓形状图
shape_image=np.array(Image.open('colored_alice_1.png'))
#生成词云图,此处默认为随机染色,当文本数量较少(看处理效果)时,将repeat设置为True
word_cloud=WordCloud(background_color='white',font_path='C:/Windows/Fonts/STXINGKA.ttf',repeat=True, mask=shape_image,min_font_size=1)
word_cloud.generate(text)
#获取颜色来源图像
color_source_image=np.array(Image.open('color_source.png'))#注意路径
#从图像中提取对应位置的颜色
colormap=ImageColorGenerator(color_source_image)
colored_image=word_cloud.recolor(color_func=colormap)
#保存图像
colored_image.to_file('colored_image.png')
WordCloud 制作词云(3) --从图片中取色,中文支持_第1张图片
(左1)词云轮廓形状图(左2)默认染色结果(右2)另取颜色染色结果(支持中文)(右1)颜色来源图像

你可能感兴趣的:(WordCloud 制作词云(3) --从图片中取色,中文支持)