目录
前言:文章内容通过使用Python,调用pandas,pyecharts.charts中的Scatter3D,以及前期对数据进行简单的处理,从而制作出一份直观的3D散点图。文章开头说明pyecharts的基本理论理解,以及一些代码先前准备,而后展示制作3D散点图代码详细过程,最后对于这份数据可视化练习进行总结。
一、关于pyecharts的基本理论
Echarts是一个由百度开源的基于js语言的数据可视化框架,凭借着良好的交互性,精巧的图表设计,得到了众多开发者的认可。
由于python在数据分析领域的活跃,一个开发团队将echarts库移植到python中,命名为“pyecharts”。
相较于matplotlib而言,pyecharts库绘制的图形种类更多,样式更精美、丰富。
官网有Pyecharts的使用文档,社区包含各种图形的项目案例代码和演示。
官网:https://pyecharts.org/#/zh-cn/intro
pyecharts 本质上在做的事情就是将 Echarts 的配置项由 Python dict 序列化为 JSON 格式,所以 pyecharts 支持什么格式的数据类型取决于 JSON 支持什么数据类型。这也就意味着在你将数据传入到 pyecharts 的时候,需要自行将数据格式转换成上述 Python 原生的数据格式。
二、先前准备
一般用于练习制作3D散点图而言,我个人最经常使用Visual Studio Code 和 jupyter notebook,所以后面将会分为两个编辑器所要注意的方面说明。
1.关于pyecharts包下载
win+r输入cmd进入管理员界面
pip install pyecharts
如出现无法下载的包过多,请先进行升级pip
直接在下面一行输入:
python -m pip install --upgrade pip
然后返回第一步重新现在即可。
2.关于Visual Studio Code的准备
尽量使用base编辑器,不然会导致出现有些包无法使用或者没安装全。
3.关于 jupyter notebook的准备
使用Anaconda Prompt输入jupyter notebook进入编辑器。
因为本身是于Anaconda环境里,jupyter的环境都已经配置好了,pyecharts包下载好即可开始编辑代码。
三、整体代码展示
1.导入包
import pandas as pd
from pyecharts.charts import Scatter3D #用于制作3d散点图
2.导入需要的数据
df = pd.read_excel('../数据集/航空公司数据.xlsx')#注意文件名的后缀(.xlsx对应read_excel,另外还有一种常见的.csv对应的是read_csv)
df.head()//查看开头前五行
3.对数据进行简单处理
df.dropna(subset=['年龄'],inplace=True)
定义x,y,z轴分别代表的列
df_select = df.loc[:100,['年龄','飞行次数','最大乘机时间间隔']]
x = df_select['飞行次数'].tolist()
y = df_select['最大乘机时间间隔'].tolist()
z = df_select['年龄'].tolist()
进行包装
[[i,j,k] for i,j,k in zip(x,y,z)]
上面得到的结果:
4.编写3d散点图模型代码
c = (
Scatter3D()
.add(
'',
data = [[i,j,k] for i,j,k in zip(x,y,z)], # 数据:二维数组
xaxis3d_opts=opts.Axis3DOpts( # x轴配置
name='飞行次数',
type_="value",
),
yaxis3d_opts=opts.Axis3DOpts( # y轴配置
name='最大乘机时间间隔',
type_="value",
),
zaxis3d_opts=opts.Axis3DOpts( # z轴配置
name='年龄',
type_="value",
),
)
.set_global_opts(
visualmap_opts=opts.VisualMapOpts(
max_= max(z),
range_color=[#图内小球具体颜色
"#1710c0",
"#0b9df0",
"#00fea8",
"#00ff0d",
"#f5f811",
"#f09a09",
"#fe0300",
],
),
)
)
c.render_notebook()
5.结果展示
四、总结:
Pycharts是一个很适用于练习数据可视化的框架,于免费且简单易懂而且图面简洁更适合上手练习。但pyecharts 本质上在做的事情就是将 Echarts 的配置项由 Python dict 序列化为 JSON 格式,所以 pyecharts 支持什么格式的数据类型取决于 JSON 支持什么数据类型。这也就意味着在你将数据传入到 pyecharts 的时候,需要自行将数据格式转换成上述 Python 原生的数据格式。