wordcloud作者github应用实例:
https://github.com/amueller/word_cloud/blob/master/examples/masked.py
官网:https://amueller.github.io/word_cloud/generated/wordcloud.WordCloud.html
内容包括:生成中文词云、英文词云、根据单词出现频率生成词云
参数设定
WordCloud可以直接pip安装,在Anaconda里python -m pip install SomePackage(包名)就可以安装。
WordCloud()部分常用参数
font_path:string字体,中文需要设定中文字体
width:int (default=400)宽
height:int (default=200)高
prefer_horizontal:float (default=0.90)水平与竖直排版比,小于1则将不合适水平词语竖直显示,大于1则只水平
mask:nd-array or None (default=None) 背景图,white (#FF or #FFFFFF)区域不能放词。
scale:float (default=1) 对大型词云用scale缩放比放大尺寸生成速度更快,但可能模糊
max_words:number (default=200)最大词量
stopwords:set of strings or None如果不设定停止词则使用默认STOPWORDS
background_color:color value (default=”black”)设置背景色
mode:string (default=”RGB”)设定RGBA则背景变为透明
wordcloud.WordCloud方法
我使用过的:
generate(text)Generate wordcloud from text.生成词云
to_file(filename)Export to image file. 保存图片
recolor([random_state, color_func, colormap])Recolor existing layout.对已有的词云重新配色(比重新生成某种颜色的词云快)
process_text(text)Splits a long text into words, eliminates the stopwords.返回统计文本中单词频率的dict
generate_from_frequencies(frequencies[, …])Create a word_cloud from words and frequencies.根据频率生成词云
没用过的:
fit_words(frequencies) Create a word_cloud from words and requencies.
generate_from_text(text)Generate wordcloud from text.
to_array()Convert to numpy array.
应用
注意:
1、词云每次随机生成,再次运行则生成新词云。
2、wordcloud.to_file(‘myfig.png’)的方法生成词云比plt.savefig更清楚,后者不能反映词云设置的大小等参数。
以下代码中text文件选择了分别包含林俊杰对的时间点的中英文歌词的两个txt,掩码图片选了一张白底png图片。
无背景词云
from wordcloud import WordCloud
import matplotlib.pyplot as plt
text = open('C:/Users/Violette/Desktop/data/As I believe.txt').read()#读入文本
wordcloud=WordCloud()
wordcloud.generate(text)
image=wordcloud.to_image()
plt