.二维线图绘制。在同一个窗口绘制4个子图,已知t=-3.8:3.8, 邮件阅视图 第一个子图绘制y1=cos(×),第二子图绘制 如=上 第三、第四个子图将y1和y2绘制在一起。
时间: 2024-11-15 18:26:34 浏览: 4
在Matplotlib库中,可以创建一个包含四个子图的二维线图,按照您的描述,首先我们需要导入必要的模块,比如`numpy`用于生成数据,以及`matplotlib.pyplot`用于绘图。以下是具体的步骤:
1. 导入所需的库:
```python
import numpy as np
import matplotlib.pyplot as plt
```
2. 定义变量 t 和对应的函数值 y1 和 y2:
```python
t = np.linspace(-3.8, 3.8, num=100) # 创建等差数组
y1 = np.cos(t) # y1 = cos(x)
y2 = np.sin(t) # y2 = sin(x)
```
3. 创建一个包含四个子图的figure:
```python
fig, axs = plt.subplots(nrows=2, ncols=2, figsize=(9, 6)) # 2行2列的子图布局
```
4. 分别在每个子图上绘制 y1 和 y2:
```python
# 第一列的第一个子图
axs[0, 0].plot(t, y1, label='y1')
axs[0, 0].set_title('子图1: y1 = cos(x)')
axs[0, 0].legend()
# 第二列的第一个子图
axs[1, 0].plot(t, y2, label='y2')
axs[1, 0].set_title('子图2: y2 = sin(x)')
axs[1, 0].legend()
# 第一行的第二个子图同时绘制 y1 和 y2
axs[0, 1].plot(t, [y1, y2], label=['y1', 'y2'])
axs[0, 1].set_title('子图3: y1 vs y2')
axs[0, 1].legend(['cos(x)', 'sin(x)'])
# 第二行的第二个子图也是同时绘制 y1 和 y2
axs[1, 1].plot(t, [y1, y2])
axs[1, 1].set_title('子图4: 同样 y1 vs y2')
axs[1, 1].legend(['cos(x)', 'sin(x)'])
# 整体显示所有子图
plt.tight_layout() # 确保子图之间有合适的间距
plt.show()
```
这将会在一个窗口中展示四个相互独立又关联的子图,分别展示了 y1 和 y2 的单独变化以及它们之间的对比。
阅读全文