词云是一种数据呈现方式,本文用Python的wordcloud包实现。
WordCloud()的可选参数:- font_path:指定字体(otf和ttf)
- width:词云宽度(默认400)
- height:词云高度(默认200)
- mask:蒙版(定制词云的形状)
- min_font_size:最小字号(默认为4)
- max_font_size:最大字号(默认为词云高度)
- max_words:词的最大数量(默认200)
- stopwords:将被忽略的停用词(若不指定则使用默认停用词词库)
- background_color:背景颜色(默认为 black)
- mode:默认为RGB模式(如果为RGBA模式且background_color设为None,则背景将透明)
- 学习参考
英文词云
代码
1from wordcloud import WordCloud2import matplotlib.pyplot as plt34# 打开文本5text = open('EnglishText.txt').read()6# 生成对象7wc = WordCloud(font_path='Hiragino.ttf', width=800, height=600, mode='RGBA', background_color=None).generate(text)8# 显示词云9plt.imshow(wc, interpolation='bilinear')10plt.axis('off')11plt.show()12# 保存到文件13wc.to_file('wordcloud.png')结果

中文词云
代码
1from wordcloud import WordCloud2import matplotlib.pyplot as plt3import jieba45# 打开文本6text = open('xyj.txt').read()7# 中文分词8text = ' '.join(jieba.cut(text))9# 生成对象10wc = WordCloud(font_path='Hiragino.ttf', width=800, height=400, mode='RGBA', background_color=None).generate(text)11# 显示词云12plt.imshow(wc, interpolation='bilinear')13plt.axis('off')14plt.show()15# 保存到文件16wc.to_file('wordcloud.png')结果

词云形状
代码
1from wordcloud import WordCloud2from PIL import Image3import numpy as np4import matplotlib.pyplot as plt5import jieba67# 打开文本8text = open('xyj.txt').read()9# 中文分词10text = ' '.join(jieba.cut(text))11# 生成对象12mask = np.array(Image.open('mask.png')) # 设置词云形状13wc = WordCloud(mask=mask, font_path='Hiragino.ttf', width=800, height=400, mode='RGBA', background_color=None).generate(text)14# 显示词云15plt.imshow(wc, interpolation='bilinear')16plt.axis('off')17plt.show()18# 保存到文件19wc.to_file('wordcloud.png')结果

词云颜色
代码
1from wordcloud import WordCloud, ImageColorGenerator2from PIL import Image3import numpy as np4import matplotlib.pyplot as plt5import jieba67# 打开文本8text = open('xyj.txt').read()9# 中文分词10text = ' '.join(jieba.cut(text))11# 生成对象12mask = np.array(Image.open('mask.png'))13wc = WordCloud(mask=mask, font_path='Hiragino.ttf', width=800, height=400, mode='RGBA', background_color=None).generate(text)14# 从图片中抽取颜色15image_colors = ImageColorGenerator(mask)16wc.recolor(color_func=image_colors)17# 显示词云18plt.imshow(wc, interpolation='bilinear')19plt.axis('off')20plt.show()21# 保存到文件22wc.to_file('wordcloud.png')结果

