pyecharts基础绘图案例解析
- 引言
- 思维导图
- 代码案例分析
- 提前安装依赖
- 同样操作
- 安装完重新启动Jupyter Notebook
- 三维散点图(代码5 - 40)
- 代码结果
- 代码解析
- 漏斗图(代码5 - 41)
- 结果
- 代码解析
- 词云图(代码5 - 42)
- 结果
- 代码解析
- 总结
引言
本文将详细介绍使用pyecharts
库进行基础绘图的相关代码案例,包括三维散点图、漏斗图和词云图的绘制。pyecharts
是一个用于生成 ECharts 图表的 Python 库,ECharts 是一个由百度开源的数据可视化工具,凭借其丰富的图表类型和强大的交互性,被广泛应用于数据可视化领域。
思维导图
graph LR
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
A(基础绘图案例):::process --> B(三维散点图):::process
A --> C(漏斗图):::process
A --> D(词云图):::process
B --> B1(最大携氧能力、体重和运动后心率):::process
C --> C1(某淘宝店铺的订单转化率):::process
D --> D1(部分宋词词频):::process
代码案例分析
提前安装依赖
打开Anaconda Prompt
输入pip install pyecharts
同样操作
在 Anaconda Prompt 中安装这四个包的完整代码如下:
- 安装
webdriver - manager
:
pip install webdriver - manager
- 安装
ipykernel
:
pip install ipykernel
- 安装
selenium
:
pip install selenium
- 安装
pyecharts - snapshot
:
pip install pyecharts - snapshot
安装完重新启动Jupyter Notebook
三维散点图(代码5 - 40)
# 代码5-40
import pandas as pd
import numpy as np
from pyecharts import options as opts
from pyecharts.charts import Scatter3D
# 读取数据
player_data = pd.read_excel('./运动员的最大携氧能力、体重和运动后心率数据.xlsm',
sheet_name=2)
print("DataFrame列名:", player_data.columns)
# 确保列名与 Excel 中的一致(英文括号)
player_data = [
player_data['体重(kg)'], # 英文括号
player_data['运动后心率(次/分钟)'], # 英文括号
player_data['最大携氧能力(ml/min)'] # 英文括号
]
player_data = np.array(player_data).T.tolist()
s = (Scatter3D()
.add('', player_data,
xaxis3d_opts=opts.Axis3DOpts(name='体重(kg)'), # 英文括号
yaxis3d_opts=opts.Axis3DOpts(name='运动后心率(次/分钟)'), # 英文括号
zaxis3d_opts=opts.Axis3DOpts(name='最大携氧能力(ml/min)')
)
.set_global_opts(title_opts=opts.TitleOpts(
title='最大携氧能力、体重和运动后心率3D散点图'),
visualmap_opts=opts.VisualMapOpts(range_color=[
'#1710c0', '#0b9df0', '#00fea8', '#00ff0d',
'#f5f811', '#f09a09',
'#fe0300'])))
s.render_notebook()
代码结果
代码解析
- 导入库:导入
pandas
和numpy
用于数据处理,从pyecharts
中导入options
和Scatter3D
用于绘图。 - 数据处理:使用
pandas
的read_excel
方法读取 Excel 文件,提取所需列的数据,将其转换为numpy
数组,再转置并转换为列表。 - 创建图表:使用
Scatter3D
创建三维散点图对象,调用add
方法添加数据,并设置三个坐标轴的名称。 - 设置全局选项:使用
set_global_opts
方法设置图表标题和视觉映射选项,包括颜色范围。 - 渲染图表:调用
render_notebook
方法在 Jupyter Notebook 中渲染图表。
漏斗图(代码5 - 41)
# 代码5-41
import pandas as pd
import numpy as np
from pyecharts import options as opts
from pyecharts.charts import Funnel
data = pd.read_excel('./某淘宝店铺的订单转化率统计数据.xlsm', sheet_name=1)
print("DataFrame列名:", data.columns)
x_data = data['网购环节'].tolist()
y_data = data['人数'].tolist()
data = [[x_data[i], y_data[i]] for i in range(len(x_data))]
funnel = (Funnel()
.add('', data_pair=data,label_opts=opts. LabelOpts(
position='inside', formatter='{b}:{d}%'), gap=2,
tooltip_opts=opts.TooltipOpts(trigger='item'),
itemstyle_opts=opts.ItemStyleOpts(border_color='#fff', border_width=1))
.set_global_opts(title_opts=opts.TitleOpts(title='某淘宝店铺的订单转化率漏斗图'),
legend_opts=opts.LegendOpts(pos_left='40%')))
funnel.render_notebook()
结果
代码解析
- 导入库:从
pyecharts.charts
中导入Funnel
用于绘制漏斗图。 - 数据处理:使用
pandas
的read_excel
方法读取 Excel 文件,将网购环节
和人数
列的数据转换为列表,并组合成二维列表。 - 创建图表:使用
Funnel
创建漏斗图对象,调用add
方法添加数据,设置标签位置、格式,间隔、提示框和项目样式。 - 设置全局选项:使用
set_global_opts
方法设置图表标题和图例位置。 - 渲染图表:调用
render_notebook
方法在 Jupyter Notebook 中渲染图表。
词云图(代码5 - 42)
# 代码5-42
from pyecharts.charts import WordCloud
data_read = pd.read_csv('./worldcloud.csv', encoding='gbk')
words = list(data_read['词语'].values)
num = list(data_read['频数'].values)
data = [k for k in zip(words, num)]
data = [(i,str(j)) for i, j in data]
wordcloud = (WordCloud()
.add('', data_pair=data, word_size_range=[10, 100])
.set_global_opts(title_opts=opts.TitleOpts(
title='部分宋词词频词云图', title_textstyle_opts=
opts.TextStyleOpts(font_size=23)),
tooltip_opts=opts.TooltipOpts(is_show=True))
)
wordcloud.render_notebook()
结果
代码解析
- 导入库:从
pyecharts.charts
中导入WordCloud
用于绘制词云图。 - 数据处理:使用
pandas
的read_csv
方法读取 CSV 文件,将词语
和频数
列的数据转换为列表,并组合成元组列表,将频数转换为字符串类型。 - 创建图表:使用
WordCloud
创建词云图对象,调用add
方法添加数据,设置词云图的大小范围。 - 设置全局选项:使用
set_global_opts
方法设置图表标题和提示框选项。 - 渲染图表:调用
render_notebook
方法在 Jupyter Notebook 中渲染图表。
总结
通过本文的学习,你可以掌握以下知识与技能:
- 学会使用
pyecharts
库绘制三维散点图、漏斗图和词云图。 - 掌握使用
pandas
进行数据读取和处理的基本方法。 - 了解
pyecharts
中图表对象的创建、数据添加和全局选项设置的方法。 - 学会在 Jupyter Notebook 中渲染
pyecharts
图表。
这些技能将帮助你在数据可视化领域更好地展示和分析数据,为数据分析和决策提供有力支持。