今天520,一早上刷朋友圈就是满满的狗粮,各种各样的花式表白,什么程序员写代码表白,短视频表白,微信暗黑模式切换表白…….其实,我们数据分析届也有我们的专属表白神器:词云图,比如像下面这样把微信聊天记录导出生成词云图:
在数据可视化图表中,词云图是一种视觉冲击力很强的图表。对输入的一段文字进行词频提取,然后以根据词汇出现频率的大小集中显示高频词,简洁直观高效。
词云图应该怎么做呢,有没有什么好用的工具?百度一搜会出现各式各样的词云图网站和软件,国内国外的都有,我体验了大概20多款,有些在使用上很鸡肋,有的要付费,从其中挑选了5种词云图的制作工具分享给大家,人人都能学会
网上很多在线词云生成网站,毕竟在线网站不用下载软件,用起来快捷方便,对比几款之后,我感觉这两个平台还算相对好用:
1、WordArt
网址:https://wordart.com/
优点:不需要注册就能使用,而且对热词数量没有限制,支持设置字体、形状等个性化配置,在线词云支持交互查看。
缺点:操作界面是英文的,这一点比较鸡肋,而且是国外网站,网页加载速度特别慢。只有一种字体支持中文,而且因为权限的问题没办法添加本地字体。
制作效果如下,各别中文有乱码:
2、微词云
网址:https://www.weiciyun.com/
优点:支持自动文本分析,提供了大量的形状模板,也支持自定义模板。字体支持种类很多,图片颜色种类也很多,还有渐变色,操作也比较简单
缺点:要注册,免费的图片有水印,而且对词汇数量有限制
网页在线生成工具和桌面软件做词云图本质上都差不多,这里推荐大家用BI工具来做,专业的数据可视化分析软件,除了词云图之外还能做出其他经验的数据可视化效果,操作很简单,适合数据分析师上手。
1、FineBI
下载地址:https://www.finebi.com/
一款商业智能分析工具,国产软件,个人版是永久免费的,生成可视化图表很简单,制作词云图也不例外,把数据源加载进FineBI界面后,图表选择词云图,把热词和词频拖拽到对应设置框,图表就自动生成了。
2、tableau
下载地址:https://www.tableau.com/
tableau是国内外知名度比较高的商业智能工具,可视化功能很强大,用来制作一般的可视化分析很方便,不过需要收费,具体的制作步骤和上面的FineBI类似,数据源都需要提前完成词频统计。
这两个工具的定位是商业智能软件,侧重数据分析,词云图不是强项,用来做平时的可视化分析还是不错的
优点:操作极其简单,词云图界能够二次筛选,有一定的交互属性
缺点:要先准备好词频统计,没办法自定义词云图形状,个性化设置不如上面的在线网页工具。
除了上面现成的软件和网站之外,还有一种方法就是代码生成词云图,比如python,下面推荐几个常用的制作词云图用的第三方库
1、WordCloud
WordCloud是Python专门用来制作词云图的第三方库,使用前需安装,不过这个安装过程比较麻烦,我试了一下,容易出现问题。WordCloud自带切分词处理能力,但是效果一般,所以往往还是会配套使用jieba库来进行切分,而后再用空格连接(WordCloud在处理切分时优先使用空格作为分隔符)。
代码如下:
翻了一下WordCloud的官方文档发现它自带参数设置非常广泛,比如:font_path设置字体;mask设置词云模板;stopwords停用词列表
效果如下:
利用文本直接生成词云
利用jieba分词后生成词云
设置词云模板mask后效果
2、pyecharts
除了WordCloud外,pyecharts也支持生成词云,和上面BI工具生成词云的方式类似,也要求输入的数据是经过筛选和统计好的数据,比如经过jieba分词+counter统计后得到的数据就可以很方便的用pyecharts来作词云。而且,pyecharts的所有图表均可交互,词云图也不例外,这也算是它的一项优势。
代码如下:
pyecharts可以设置一些词云图的参数,不过相比WordCloud库来说,实在是太有限了。
利用pyecharts生成的词云效果如下: