Python绘制词云图之可视化神器pyecharts的方法

1. pyecharts简介

pyecharts是一个基于echarts.js封装的Python可视化库,可以便捷地创建多种类型的交互式可视化图表,包括折线图、散点图、饼图、词云图等等。此外,pyecharts还支持多种渲染方式,包括在jupyter notebook中渲染、生成HTML文件、在Flask、Django等Web框架中渲染以及生成图片文件等。

2. 安装pyecharts库

使用pip命令可以轻松安装pyecharts库:

pip install pyecharts

使用pip安装pyecharts时可以同时安装依赖包:

pip install pyecharts[all]

3. pyecharts绘制词云图

3.1 准备数据

在绘制词云图前,首先需要准备数据。下面是一个简单的例子:

data = [('Python', 100), ('Java', 90), ('C++', 80), ('Javascript', 70), 

('Ruby', 60), ('PHP', 50), ('C#', 40), ('Go', 30), ('Swift', 20), ('Perl', 10)]

数据采用列表的形式,每个元素是一个二元组,第一个元素表示词语,第二个元素表示该词语在文本中出现的频率。

3.2 导入必要模块

绘制词云图需要导入相应的模块,包括WordCloud和matplotlib。同时,由于pyecharts基于echarts.js,因此还需要导入相应的echarts.js。

from pyecharts.charts import WordCloud

from pyecharts import options as opts

from pyecharts.globals import SymbolType

from wordcloud import WordCloud as WC

import matplotlib.pyplot as plt

# 导入echarts.js

from pyecharts.globals import CurrentConfig, OnlineHostType

CurrentConfig.ONLINE_HOST = OnlineHostType.NPM

3.3 绘制词云图

利用pyecharts的WordCloud模块可以很方便地绘制词云图。在调用WordCloud模块前,需要先利用matplotlib库生成一个基本的词云图。

# 准备数据

data = [('Python', 100), ('Java', 90), ('C++', 80), ('Javascript', 70),

('Ruby', 60), ('PHP', 50), ('C#', 40), ('Go', 30), ('Swift', 20), ('Perl', 10)]

# 生成词云图

wordcloud = WC(background_color='white', max_words=50, max_font_size=60)

word_freq = {x[0]:x[1] for x in data}

wordcloud.fit_words(word_freq)

plt.imshow(wordcloud)

plt.axis('off')

plt.show()

执行以上代码,可以得到一个基本的词云图:

接下来,利用pyecharts的WordCloud模块可以在这个基础上添加更多的交互效果。例如,可以使用add系列方法向图表中添加数据序列,设置图表标题和坐标轴标题等等。以下是实现代码:

# 定义数据

data = [('Python', 100), ('Java', 90), ('C++', 80), ('Javascript', 70),

('Ruby', 60), ('PHP', 50), ('C#', 40), ('Go', 30), ('Swift', 20), ('Perl', 10)]

# 初始化词云图

c = WordCloud()

c.add("", data, word_size_range=[20, 100], shape=SymbolType.RECT)

c.set_global_opts(title_opts=opts.TitleOpts(title='编程语言流行度排行'))

c.render_notebook()

这里使用了add方法向词云图中添加数据序列,其中第一个参数表示数据序列的名称,第二个参数表示数据序列的数据,word_size_range参数设置了词语大小的范围,shape参数设置了词语形状。在绘制完成后,可以调用set_global_opts方法设置图表标题。最后调用render_notebook方法可以将词云图渲染在jupyter notebook中:

4. 结语

以上就是使用pyecharts绘制词云图的方法。通过pyecharts,可以轻松地创建多种类型的图表,并且可以为图表添加多种交互效果,使得数据更加直观、生动。

后端开发标签