WordCloud词云是一种数据可视化形式
- 不会的时候,感觉很厉害
- 会用了之后,感觉别人都玩烂了
这篇文章就教大家如何使用Python生成词云
准备工作
先要安装wordcloud(本体),matplotlib(绘图),jieba(中文分词),PIL(依赖)这些库。
使用pip安装: pip install wordcloud matplotlib jieba PIL
WordCloud()函数介绍
WordCloud()
的参数如下:
font_path
:可用于指定字体路径,包括otf和ttfwidth
:词云的宽度,默认为400height
:词云的高度,默认为200mask
:蒙版,可用于定制词云的形状min_font_size
:最小字号,默认为4max_font_size
:最大字号,默认为词云的高度max_words
:词的最大数量,默认为200stopwords
:将被忽略的停用词,如果不指定则使用默认的停用词词库background_color
:背景颜色,默认为blackmode
:默认为RGB模式,如果为RGBA模式且background_color设为None,则背景将透明
从零开始
导入库
from wordcloud import WordCloud import matplotlib.pyplot as plt Matplotlib是一个Python 2D绘图库,可以生成各种硬拷贝格式和跨平台交互式环境的出版物质量数据。官方网站
生成WordCloud
wc = WordCloud().generate(open(‘input.txt’).read()) 这里的
input.txt
可以是一篇文章、一本书,甚至无序的数字序列,WordCloud将会根据词频自动输出。
如果使用Linux无界面操作系统或者Jupyter Notebook,中文有可能会出现无字体的问题,那么就需要自定义字体路径:
wc = WordCloud(font_path='font.ttf').generate(open('input.txt').read())
其中font.ttf是自定义的字体路径,建议放在同目录下。
- 显示图片
这里用到了万能的Matplotlib,可以在有GUI的环境下或者Jupyter Notebook下预览图片:
plt.imshow(wc, interpolation='bilinear')
plt.axis('off')
plt.show()
Matplotlib在Jupyter Notebook有时候会出现调用时只显示对象摘要不输出图片的问题,这个时候重新执行一次就可以了,效果如下:
- Chinese Trick
你可能注意到了,这个时候词语好像不太对劲,本来好好的“行者”硬是被分成了“行者道”。这是因为WordCloud本身并不是专门为中文适配的,所以我们要祭出jieba来给中文分词:
import jieba
text = ' '.join(jieba.cut(text))
到此,Word Cloud就告一段落啦,是不是十分简单?
参考链接: 03 高端又一般的词云 Matplotlib 结巴 WordCloud