1.用两种不同方法将x-y1图和x-y2图画在一个坐标系下(x, y1, y2均为实的同维列向量)。
时间: 2024-11-17 18:29:51 浏览: 12
要在Python的matplotlib库中绘制两个线图在同一坐标系下,通常会使用`plt.subplot()`函数创建一个新的小窗口,并分别对每个y轴进行绘图。以下是使用两种常见方法的示例:
方法一:使用`ax.plot()`和`ax2.plot()`
```python
import matplotlib.pyplot as plt
import numpy as np
# 创建数据
x = np.linspace(0, 10, 100)
y1 = x ** 2
y2 = np.sin(x)
# 创建子图
fig, ax = plt.subplots()
# 第一条线图
ax.plot(x, y1, label='y1 = x^2')
# 创建第二个线图的子图并将其放置在主图上
ax2 = ax.twinx()
ax2.plot(x, y2, color='tab:blue', label='y2 = sin(x)')
# 设置图例和标题
ax.set_xlabel('X')
ax.set_ylabel('y1 (x^2)')
ax2.set_ylabel('y2 (sin(x))')
ax.legend()
# 显示图形
plt.show()
```
方法二:使用`plt.subplots_adjust()`调整子图间距
```python
import matplotlib.pyplot as plt
# ... (创建数据、变量等步骤与之前一样)
# 创建子图
fig, axs = plt.subplots(nrows=1, ncols=2, figsize=(10, 5))
# 绘制第一个线图
axs[0].plot(x, y1, label='y1 = x^2')
axs[0].set_ylabel('y1 (x^2)')
axs[0].legend()
# 绘制第二个线图
axs[1].plot(x, y2, color='tab:blue', label='y2 = sin(x)')
axs[1].set_ylabel('y2 (sin(x))')
# 调整子图间距
fig.tight_layout()
# 显示图形
plt.show()
```
这两种方法都能在同一坐标系内同时展示两个y轴的数据。
阅读全文