在做文本分析和关键词统计的时候,我们经常会使用到词云图来展示关键词词频。pyecharts当然也支持词云的生成,并且还可以自定义词云形状。
- from pyecharts import charts, options
- from pyecharts.globals import SymbolType
- import random
- wordcloud1 = charts.WordCloud(init_opts=options.InitOpts(width='800px', height='800px'))
- wordcloud1.add('词云', data_pair=[(str(i), random.randrange(10, 100)) for i in range(100)],
- shape=SymbolType.DIAMOND,
- word_gap=5,
- word_size_range=[10, 50],
- rotate_step=30)
- wordcloud2 = charts.WordCloud(init_opts=options.InitOpts(width='1000px', height='1000px'))
- wordcloud2.add('词云', data_pair=[(str(i), random.randrange(10, 100)) for i in range(600)],
- mask_image='bigdata.jpg',
- word_gap=10,
- word_size_range=[10, 100],
- rotate_step=30)
- page = charts.Page()
- page.add(wordcloud1).add(wordcloud2)
- page.render('wordcloud.html')
使用自带的形状来创建第一个词云
(1)首先初始化词云对象
(2)添加数据系列,data_pair是一个二元数组,分别表示关键词及关键词对应数值大小
(3)shape即是整个词云图的形状,内置的有circle、diamond、star、triangle等等
(4)word_gap是指关键词与关键词之间的间隔
(5)word_size_range是关键词字体大小范围,关键词按照数值大小映射到这个区间内,展示出相应的字体大小
(6)rotate_step(6)rotate_step代表单词旋转角度范围
看一下我们创建的第一个词云,菱形:
除了使用自带的形状外,我们还可以导入外部图片,比如第二个例子,给mask_image传入一张图片,最后输出的词云便是基于图片形状的:
传入图片
输出词云