Matplotlib介绍
- 是专门用于开发2D图表(包括3D图表)
- 简单,同时图像能够达到出版物的级别
- 以渐进、交互式方式实现数据可视化
Matplotlib的三层结构
-
容器层
(1) Canvas:画布,位于最底层,用户一般接触不到
(2)Figure:图,建立在Canvas之上
(3)Axes:坐标系/绘图区,建立在Figure之上,图形绘制在这个范围 -
辅助显示层(最好放在图像层之后编写)
(1)起到辅助作用,提高图的可读性
(2) 网格线,图例,x、y轴的标签,图的标签,刻度/刻度标签 -
图像层
(1)根据数据绘制出来的元素
(2)折线图/散点图/柱状图/直方图/饼图
一:容器层
(1)Canvas
Canvas层不需要我们来创建,一般用户接触不到
(2)Figure
# 创建画布
plt.figure(figsize=(10, 6), dpi=100)
figsize:指定图的长与宽
dpi:图像的清晰度
# 后续直接使用plt来操作进行了
(3)Axes
# 创建多个绘图区
fig, axes = plt.subplots(nrows=1, ncols=2, figsize=(20, 8), dpi=80)
# 后续需要使用axes来操作
figure与subplots函数只需要写一个,如果一个绘图使用figure就可以,如果需要多个就要使用subplots
二:辅助层
(1)设置axis刻度
# 设置x轴的刻度
plt.xticks()
# 设置y轴的刻度
plt.yticks()
# 如果是多个绘图区的时候,函数名需要改变,并且刻度名字需要重新写一个函数
axes[0].set_xticks()
axes[0].set_yticks()
axes[0].set_xticklabels()
axes[0].set_yticklabels()
(2)添加网格显示
plt.grid(alpha=0.5)
(3)添加描述信息
# 添加x轴描述信息
plt.xlabel()
# 添加y轴描述信息
plt.ylabel()
# 添加头描述信息
plt.title()
# 如果是多个绘图区的时候,函数名需要改变
axes[0].set_xlabel()
axes[0].set_ylabel()
axes[0].set_title()
(4)显示图例
plt.legend()
三:图像层
(1)折线图
显示事物变化的趋势
# 创建折线图
plt.plot(x, y, color='r', linestyle='--', label='名字')
x:x轴坐标
y:y轴坐标
color:线的颜色
linestyle:线的形状
label:线的名字
(2)散点图
判断变量之间是否存在数量关联趋势
# 创建散点图
plt.scatter(x, y)
x:x轴坐标
y:y轴坐标
(3)柱状图
进行大小的对比
# 创建柱状图
plt.bar(x, y, width=0.2)
x:x轴坐标
y:y轴坐标
width:柱状图的宽度
(4)直方图
表示频率的分布
# 创建直方图
plt.hist(data, bins=group_num)
data:数据,一大堆数据
bins:表示分组的个数
(5)饼图
表示占比
# 创建饼图
plt.pie(data, labels="名字", autopct="%1.2%%", shadow=True, explode=(0,0.1,0,0))
data:列表,里面存储的是每条数据的大小
labels:各个部分的名字,也是一个列表与数据相对应
autopct:数据输出的形式
shadow:阴影,图形是否带阴影
explode:突出,列表与数据相对应