目录
plt.subplots() 是 Matplotlib 库中的一个函数,用于创建一个新的图形窗口或激活一个已存在的图形窗口,并返回一个或多个子图(subplots)的坐标轴对象。
plt.subplots() 函数在 Matplotlib 中用于创建子图。以下是其常用的参数:
nrows, ncols: 定义子图的行数和列数。例如,plt.subplots(2, 2) 将创建一个2x2的子图布局。
sharex, sharey: 是否共享x轴或y轴。默认为False。当设置为True时,子图将共享相同的轴。
figsize: 一个元组,表示图形的宽度和高度(以英寸为单位)。例如,plt.subplots(figsize=(8, 6)) 将创建一个8x6英寸的图形。
gridspec_kw: 一个字典,用于指定如何布局子图。matplotlib.gridspec 模块提供了一个灵活的布局系统。
subplot_kw: 一个字典,用于指定创建子图时使用的关键字参数。
gridspec: 一个 GridSpec 对象,用于指定子图的布局。
ax: 一个坐标轴对象,用于在其上绘制子图。如果提供了此参数,则不会创建新的坐标轴对象,而是使用该对象。
polar: 是否创建一个极坐标图。默认为False。
aspect: 控制坐标轴的纵横比。可以设置为 'auto'(默认)或 'equal',使x和y轴的单位长度相等。
facecolor: 子图的背景颜色。默认为 'w'(白色)。
frameon: 是否显示子图的边框。默认为True。
sharepos: 共享x轴和y轴的位置信息(仅适用于极坐标图)。
constraints: 一个字典,用于控制子图的位置和大小。
rasterized: 如果为True,将使用光栅化来绘制子图,这对于大量数据点很有用,因为它可以减少内存使用并加速绘图过程。
axvline 和 axhline: 在子图的特定位置绘制垂直线或水平线。
这些参数提供了很大的灵活性,使您可以自定义子图的布局和外观。
1:创建一个图
fig, ax = plt.subplots()
plt.show()
2: 创建四个图
fig, ax = plt.subplots(2,2)
plt.show()
3: 在子图上画线
在第一个子图上画横线,在第二个子图上画竖线
在第三个子图上画斜线线,在第四个子图上画反斜线
fig, ax = plt.subplots(2, 2)
ax1 = ax[0, 0]
ax2 = ax[0, 1]
ax3 = ax[1, 0]
ax4 = ax[1, 1]
x1 = 5
y1 = 5
x2 = length + 5
y2 = length + 5
x3 = 0
y3=0
x4=10
y4=10
ax1.plot([x1,x2], [y1,y1])
ax2.plot([x1,x1],[y1,y2])
ax3.plot([x3, x4], [y3, y4])
ax4.plot([x3, x4], [y4, y3])
plt.show()
4:在子图上画面
在第一个子图上画正方形,在第二个子图上画矩形
fig, ax = plt.subplots(1, 2)
? ? ax1 = ax[0]
? ? ax2 = ax[1]
? ? ax1.set_xlim([0, length + 10])
? ? ax2.set_ylim([0, length + 10])
? ? x1 = 5
? ? y1 = 5
? ? x2 = length + 5
? ? y2 = length + 5
? ? x3 = 0
? ? y3=0
? ? x4=20
? ? y4=20
? ? ax1.plot([x1,x2,x2,x1,x1], [y1,y1,y2,y2,y1])
? ? ax2.plot([x1,x1,x4,x4,x1],[y1,y2,y2,y1,y1])
? ? plt.show()
?? ?
5: 填充面
?? ?x = [x1, x1, x2, x2]
? ? y = [y1, y2, y2, y1]
? ? ax1.fill_between(x, y)
用黄色填充
?ax1.fill_between(x, y, color='yellow')
??
?