fig, axs = plt.subplots(2, 2, figsize=(12, 4))
时间: 2023-09-23 09:04:05 浏览: 144
这段代码创建了一个大小为 12x4 的画布,并将画布分成 2 行 2 列的四个子图区域。`axs` 是一个包含四个子图对象的二维数组,可以分别在每个子图中绘制不同的图形。
下面是一个例子,展示如何在这四个子图中绘制不同的图形:
```python
import matplotlib.pyplot as plt
import numpy as np
# 生成数据
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)
y3 = np.tan(x)
y4 = np.exp(x)
# 创建画布和子图
fig, axs = plt.subplots(2, 2, figsize=(12, 4))
# 在子图中绘制图形
axs[0, 0].plot(x, y1)
axs[0, 0].set_title('sin(x)')
axs[0, 1].plot(x, y2)
axs[0, 1].set_title('cos(x)')
axs[1, 0].plot(x, y3)
axs[1, 0].set_title('tan(x)')
axs[1, 1].plot(x, y4)
axs[1, 1].set_title('exp(x)')
# 显示图形
plt.show()
```
运行以上代码,会在同一画布上绘制四个不同的图形:正弦曲线、余弦曲线、正切曲线和指数曲线。注意,在二维数组中使用 `axs[row, col]` 的方式访问每个子图对象。
相关问题
为什么plt.plot正常,但是fig, axs = plt.subplots(2, 2, figsize=(12, 4)) 用axs[0].plot就会报错
可能是因为 `axs` 是一个包含 2 行 2 列的 `AxesSubplot` 对象数组,需要使用类似于 `axs[row_index][col_index].plot` 这样的方法访问每个子图。所以,对于第一个子图,你需要使用 `axs[0, 0].plot` 来绘制。具体的代码可以参考以下示例:
```
import matplotlib.pyplot as plt
import numpy as np
# 创建一个包含 2 行 2 列的子图
fig, axs = plt.subplots(2, 2, figsize=(12, 4))
# 在第一个子图中绘制 sin(x)
x = np.linspace(0, 2*np.pi, 100)
y = np.sin(x)
axs[0, 0].plot(x, y)
# 在第二个子图中绘制 cos(x)
y = np.cos(x)
axs[0, 1].plot(x, y)
# 在第三个子图中绘制 tan(x)
y = np.tan(x)
axs[1, 0].plot(x, y)
# 在第四个子图中绘制 exp(x)
y = np.exp(x)
axs[1, 1].plot(x, y)
# 显示图形
plt.show()
```
fig, axs = plt.subplots(1, 2, figsize=(4, 4), wspace=0.5, hspace=0.5) plt.subplot(121)
这段代码的作用是创建一个包含两个子图的画布,子图排列成一行两列,宽度间距为0.5,高度间距为0.5。第一行代码 `fig, axs = plt.subplots(1, 2, figsize=(4, 4), wspace=0.5, hspace=0.5)` 创建了一个 1x2 的子图,宽度为 4,高度为 4,子图之间的宽度间距为 0.5,高度间距为 0.5,返回一个 Figure 对象和一个包含两个 AxesSubplot 对象的数组。第二行代码 `plt.subplot(121)` 选择第一个子图,这里的参数 121 表示子图排列成 1x2,当前选择的是第 1 个子图。
需要注意的是,这段代码需要 matplotlib 库的支持,如果你的代码中没有导入该库,请先导入。如果你还有其他问题,请提供更多上下文和代码。
阅读全文