mat — matrix 矩阵
plot — 画图
lib — library 库
matlab 矩阵实验室
- mat — matrix 矩阵
- lab 实验室
一、matplotlib三层结构
1. 容器层
-
画板层 Canvas
-
画布层 Figure
plt.figure()
-
绘图层/坐标系 axes
plt.subplots()
axis坐标轴
2. 辅助显示层
3. 图像层
图像层指Axes内通过plot(折线图)、scatter(散点图)、bar(柱状图)、histogram(直方图)、pie(饼图)等函数根据数据绘制出的图像。
-
总结:
-
Canvas(画板)位于最底层,用户一般接触不到
-
Figure(画布)建立在Canvas之上
-
Axes(绘图区)建立在Figure之上。一个画布可以有多个绘图区
-
坐标轴(axis)、图例(legend)等辅助显示层以及图像层都是建立在Axes之上。
4. 常见图像种类及特点
特点 | 图像 | ||
---|---|---|---|
折线图(plot) | 以折线的上升或下降来表示统计数量的增减变化的统计图 | 能够显示数据的变化趋势,反映事物的变化情况。(变化) | |
散点图(scatter) | 用两组数据构成多个坐标点,考察坐标点的分布,判断两变量之间是否存在某种关联或总结坐标点的分布模式。 | 判断变量之间是否存在数量关联趋势,展示离群点(分布规律) | |
柱状图(bar) | 排列在工作表的列或行中的数据可以绘制到柱状图中。 | 绘制连离散的数据,能够一眼看出名个数据的大小,比较数据之间的差别(统计/对比) | |
直方图(histogram) | 由一系列高度不等的纵向条纹或线段表示数据分布的情况。一般用横轴表示数据范围,纵轴表示分布情况。 | 绘制连续性的数据展示一组或者多组数据的分布状况(统计) | |
饼图(pie) | 用于表示不同分类的占比情况,通过弧度大小来对比各种分类。 | 分类数据的占比情况(占比) |
二、 折线图
matplotlib.pyplot包含了一系列类似于matlab的画图函数。它的函数作用于当前图形(figure)的当前坐标系(axes)
# 两者皆可
import matplotlib.pyplot as plt
from matplotlib import pyplot as plt
# 1. 创建画布
plt.figure()
# 2. 绘制图像
plt.plot([1, 2, 3, 4, 5, 6, 7], [17, 17, 18, 15, 11, 11, 13])
# 3. 显示图像
plt.show()
1. 设置画布属性与保存图片
设置画布大小与清晰度:plt.figure(figsize=(20, 8), dpi=80)
保存图像:plt.savefig(“test78.png”)
注意:plt.show()会释放figure资源,如果在显示图像之后保存图片将只能保存空片。
2. 修改x、y轴刻度
- plt.xticks(x,**kwargs)
- x:要显示的刻度值
- plt.yticks(y,**kwargs)
- y:要显示的刻度值
3. 正常显示中文和负号
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号
4. 显示网格
plt.grid(linestyle='--',alpha=0.5)
linestyle:线条风格
alpha:透明度
5. 添加描述信息、标题
plt.xlabel("时间变化") # 为x轴添加信息
plt.ylabel("温度变化")
plt.title("某城市11点到12点每分钟的温度变化状况")
6. 图形风格
7. 同一坐标系下的不同图形
使用多次plot
设置不同图例后,要使用plt.legend()将不同图例显示出来
三、直方图
- 组数:在统计数据时,我们把数据按照不同的范围分成几个组,分成的组的个数称为组数
- 组距:每一组两个端点的差
直方图牵涉统计学的概念,首先要对数据进行分组,然后统计每个分组内数据元的数量。在坐标系中,横轴标出每个组的端点,纵轴表示频数,每个矩形的高代表对应的频数,称这样的统计图为频数分布直方图。
1. 直方图与柱状图的区别
- 直方图展示数据的分布,柱状图比较数据的大小(最根本的区别)
- 直方图 X 轴为定量数据,柱状图 X 轴为分类数据
- 直方图柱子无间隔,柱状图柱子有间隔
- 直方图柱子宽度可不一,柱状图柱子宽度须一致