初窥wordcloud之老司机带你定制词云图片

抓紧上车啦

#-*-coding:utf-8 -*-

from os import path
from wordcloud import WordCloud, STOPWORDS, ImageColorGenerator
#用来画词云的。
import matplotlib.pyplot as plt
#用来解析特殊的图片模板,numpy也可以的。
from scipy.misc import imread

#第一步读你要制作成词云的源文件,少年记得用‘r’去读,手抖用了次‘w+’结果文件让我清空了。。。
dir=r'C:\Users\cchen\Desktop\MPLS_2.txt'
text=open(dir,'r').read()
#用导入的scipy的imread去解析模板文件,图片越大解析越慢
alice_coloring = imread(r'C:\Users\cchen\Desktop\cloud.jpg')
#print alice_coloring 所料不错,是个挺大的矩阵。大到卡住了

#生成词云,这里可以用到很多的参数
#background_color顾名思义,是背景的颜色
#max_words 词云显示的最大词数
#mask 主角,我们的个人定制的模板
#max_font_size 字体的最大值
#stopwords 去除一些常用词汇,比如a,is,the之类的,你可以用add加上你不想显示的词。
#font_path='./font/cabin-sketch.bold.ttf设置字体
wc = WordCloud(background_color="white", max_words=600, mask=alice_coloring,max_font_size=200, random_state=42,stopwords=STOPWORDS.add("said"))
wc.generate(text)

#show出来定制化的词云,颜色是随机的五颜六色,第一个图就是啦
plt.figure()
plt.imshow(wc)
plt.axis("off")



# 我这么低调的人肯定要用原图的黑色啊
# 可以用color_func=image_colors来重新画
# 根据模板获取颜色
image_colors = ImageColorGenerator(alice_coloring)
#获取到的颜色模板,并用该模板来重画词云
plt.imshow(wc.recolor(color_func=image_colors))
plt.axis("off")
#来看下我们的模板
plt.figure()
plt.imshow(alice_coloring, cmap=plt.cm.gray)
plt.axis("off")
plt.show()

来看看依照原图来的模板

我们的模板

 

 

是不是很炫酷。

因为python2.7的蛋疼的中文编码问题。如果是中文文档的话,可以用jieba分词对文件进行次频处理在生成词云。

挖个坑,以后填。。

posted @ 2017-03-08 17:50  yushangcc  阅读(1083)  评论(0编辑  收藏  举报