分享

30秒搞定词云图:pyecharts的便捷你无法想象

 止观观止 2019-02-03

我们曾经使用wordcloud绘制过词云图,然而在pyecharts中,对于词云图的绘制更加方便,另外它还支持了额外的动态特性。

这篇文章内容比较简单,就直接免费给大家看了。不过有余力的朋友还是希望能支持一下,最近晚上十来点钟下了班再熬夜写文章,都快精神衰弱了。如果能有一些额外的收入补贴家用,我也好有足够的动力继续写下去,谢谢大家了!

生成数据

我们先生成一些数据,用于绘制词云图。pyecharts需要两组等长的数据,一组是我们要展示的单词,一组则是每个单词所对应的词频(或者我们可以理解为大小)。

from random import randintwords = [''大数据'', ''数据科学'', ''Python'', ''数据分析'', ''Excel'', ''数据库'', ''爬虫'', ''可视化'', ''机器学习'', ''数据挖掘'', ''数据仓库'', ''ETL'', ''概率统计'', ''云计算'', ''线性代数'', ''深度学习'', ''量化研究'', ''时间序列'', ''Echarts'', ''Seaborn'']counts = [randint(100, 10000) for i in range(20)]

当然,在实际的应用过程中,我们并不会像这样随机生成数据,而是通过分组统计等方式得到每个词的词频;在有些场景中,我们甚至要先对文章内容做一个分词处理,然后再统计词频。

接下来,我们就看看如何用pyecharts来绘制词云图。毫不夸张地说,30秒不到,我们就能绘制出一个最简单的词云图了。

词云图

在pyecharts中,我们用WordCloud()来绘制词云图。

from pyecharts import WordCloudwordcloud = WordCloud(''词云图示例'')wordcloud.add('''', words, counts)

看,在词云图中,我们还可以把鼠标悬浮在某个词上,这样我们就能看到这个词的词频具体是多少。这就比wordcloud库的绘制效果强大多了。

在add()方法中,支持的参数如下:

  • name:图例名称,字符串格式;
  • attr:具体的字或词的列表;
  • value:每个字或词对应的词频;
  • shape:词云图的整体形状;
  • word_gap:单词之间的空隙大小,默认为20;
  • word_size_range:单词字体的大小范围,默认为[12,60]
  • rotate_step:旋转单词角度,默认为45,注意,只有当形状为circle时,这一参数才有效。

那么接下来我们来看看pyecharts支持的词云图形状有哪些。

各种形状的词云图

在pyecharts中,shape目前支持7种形状,默认为circle,其他的有cardioid、diamond、triangle-forward、triangle、pentagon和star。接下来我们依次看看它们都长什么样子。

from pyecharts import Pagewords = [''大数据'', ''数据科学'', ''Python'', ''数据分析'', ''Excel'', ''数据库'', ''爬虫'', ''可视化'', ''机器学习'', ''数据挖掘'', ''数据仓库'', ''ETL'', ''概率统计'', ''云计算'', ''线性代数'', ''深度学习'', ''量化研究'', ''时间序列'', ''Echarts'', ''Seaborn'']counts = [randint(100, 10000) for i in range(20)]# 分别绘制不同形状的词云图,然后放到一个列表中pics = []shapes = [''circle'', ''cardioid'', ''diamond'', ''triangle-forward'', ''triangle'', ''pentagon'', ''star'']for shape in shapes: wordcloud = WordCloud() wordcloud.add(shape, words, counts, shape=shape) pics.append(wordcloud) # 组成图形网格矩阵page = Page(''词云图形状示例'')page.add(pics)page.render(''wordcloud_page.html'')

可以看到,什么圆形、三角形、钻石形甚至星星形,都有。这里我们用了Page()方法,将多个词云图对象放到了一个网页中。

目前pyecharts对于词云图的支持还比较简单,不过大部分情况下,我们也不需要太过复杂的配置。当我们需要比较复杂的配置时,可以暂时考虑wordcloud库,想学wordcloud库使用的可以看我的历史文章。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多