目录
一.Figure容器和子图对象
Figure容器
子图对象
Subplot
Axes
绘制双y轴
删除一个子图对象
获取一个子图对象进行操作
二.Axis容器与多图布局
Axis容器
Axis介绍
设置x轴和y轴label的位置
设置刻度上的刻度格式
设置刻度对象,刻度标签对象,刻度线
多图布局
调整子图间距
自定义布局
一.Figure容器和子图对象
Figure容器
Matplotlib所绘制的图位于图片(Figure)对象中,我们可以通过 plt.figure() 生成一个新的图片:
from matplotlib import pyplot as plt fig = plt.figure()
可以通过参数 figsize 来设置画布的大小比例:
实例:
子图对象
Subplot
(1)plt.subplot(# 子图位置 几行几列 第几个) 创建一个或多个子图对象;
(2)fig.add_subplot(# 子图位置 几行几列 第几个) 与上述方法效果一致,不同的是制定了figure;
实例:
设置子图的参数时,除了使用 set 方法一起设置以外,还可通过单独设置:
如下:
Axes
(1)fig.add_axes(# 原点坐标 原图长度比例) 使用该方法创建子图,与上述subplot有较大的不同,如下所示:
实例:
在没有特殊要求的情况下,我们一般不使用这种方法创建子图。
绘制双y轴
(1)twinx() 克隆一个共用的x轴对象;
实例:
删除一个子图对象
(1)fig.delaxes()
实例:
获取一个子图对象进行操作
使用 for 循环来对 fig 的 axes 进行遍历操作;
实例:
二.Axis容器与多图布局
Axis容器
Axis介绍
Axis介绍
Axis 代表的是 x 轴或者 y 轴的对象。包含 Tick(刻度)对象,TickLabel 刻度文本对象,以及 AxisLabel 坐标轴文本对象。axis 对象有一些方法可以操作刻度和文本等。
设置x轴和y轴label的位置
(1)ax1.xaxis.set_label_coords(x,y)
(2)ax1.yaxis.set_label_coords(x,y)
实例:
设置刻度上的刻度格式
from matplotlib import ticker
formatter = ticker.FormatStrFormatter("自定义格式")
ax1.yaxis.set_major_formatter(formatter)
实例(使y轴刻度保留两位小数):
设置刻度对象,刻度标签对象,刻度线
多图布局
方法:subplots()
import matplotlib.pyplot as plt
fig,axes = plt.subplots(2,2)
axes[0,0].plot([1,2],[1,2])
axes[0,1].plot([1,2],[1,2])
axes[1,0].plot([1,2],[1,2])
axes[1,1].plot([1,2],[1,2])
axes[0,0].set_xlabel("x-label")
axes[0,0].set_ylabel("y-label")
axes[0,0].set_title("title")
axes[0,1].set_xlabel("x-label")
axes[0,1].set_ylabel("y-label")
axes[0,1].set_title("title")
axes[1,0].set_xlabel("x-label")
axes[1,0].set_ylabel("y-label")
axes[1,0].set_title("title")
axes[1,1].set_xlabel("x-label")
axes[1,1].set_ylabel("y-label")
axes[1,1].set_title("title")
plt.show()
实例:
调整子图间距
(1)fig.subplots_adjust(left=None,bottom=None,right=None,top=None,wspace=None,hspace=None)
(2)使用上述方法:fig.tight_layout(h_pad=None,w_pad=None)
自定义布局
对于比较复杂的布局需要借助到 GridSpec对象,通过 fig.add_gridspec(2,2) 创建栅栏模式,在使用 fig.add_plot 添加子图。
调整子图比例时:fig.add_gridspec(2,2,width_ratios=width,height_ratios=height)



