我们曾经使用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()方法中,支持的参数如下:
那么接下来我们来看看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库使用的可以看我的历史文章。 |
|