前言

词云图顾名思义就是把文本中的单词制作成图片的形式,其中单词出现的频率越高,那么相应的在图片中所占的面积就大,如何制作词云图呢,首先获取文本的内容,通过分词解析单词出现的频率,然后生成对应的词云图

  • pyecharts环境以及相关模块的安装
  • 词云图的绘制
  • 关于词云图的一些看法



python词云图背景模板 词云图pycharm制作_python


pyecharts环境的安装

作者的python版本是2.7,由于pyecharts的1.0版本以上不再支持python2.7,所以我们使用的pyecharts是0.5.11这个版本,通过pip命令进行pyecharts的下载安装

pip install pyecharts==0.5.11

安装好pyecharts之后,我们还需要进行jieba的安装,通过jieba这个模块进行分词

pip install jieba

注:pyecharts自带的WordCloud可以制作网页版的词云图

词云图的绘制

pyecharts中的WordCloud这个类主要用于词云图的生成

首先获取制作词云图的文本文档,作者采用之前写过的一篇文章《使用python绘制中国地图》作为数据源,通过jieba进行分词和频率统计,通过open函数将文章内容放到comment变量中,jieba进行分词,然后将统计的词频存放到wordCount这个字典中,将字典中的k,v值分别提取出来放到name和value这两个list中作为参数传给词云图


python词云图背景模板 词云图pycharm制作_python_02


wordcloud的add方法中的name和value分别是两个list,表示属性名称和属性对应的值。其中shape表示的是词云图的形状,word_gap表示单词间隔,默认为 20,word_size_range表示单词字体大小范围,默认为 [12, 60],rotate_step表示旋转单词的角度,默认为 45


python词云图背景模板 词云图pycharm制作_词云_03


注:词云图轮廓,有'circle', 'cardioid', 'diamond', 'triangle-forward', 'triangle', 'pentagon', 'star'可选,当且仅当 shape 为默认的'circle'时 rotate_step 参数才生效

关于词云图的一些看法

词云图通过对单词权重不同的表示,其实权重就是单词在文本中出现的频率,来绘制单词不同面积占比的图片,可以达到良好的视觉效果,无效的信息由于出现的频率可能比较低,所以可以有效的过滤。而重点的信息由于出现频率高,可以非常直观的从词云图中看出来。词云图可以从不同的维度,比如单词的内容,单词的频率以及单词的颜色等方面来展示数据,当做一些营销热点信息或者新闻类的内容等领域展示的时候,用词云图来做数据信息的分析还是很高效方便的

欢迎关注桓艺恒,一起探讨交流有关python的技术领域