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,可以轻松地创建多种类型的图表,并且可以为图表添加多种交互效果,使得数据更加直观、生动。