两组数据绘制在同一个曲线图里
时间: 2024-10-19 18:07:33 浏览: 23
要将两组数据绘制成在同一张曲线图上,你可以使用Python的matplotlib库。首先确保已经安装了matplotlib和numpy(如果尚未安装,可以通过pip install matplotlib numpy命令进行安装)。以下是一个简单的例子,展示如何创建一个带有两条线的双Y轴曲线图:
```python
import matplotlib.pyplot as plt
import numpy as np
# 假设我们有两组数据
data1_x = np.linspace(0, 10, 100)
data1_y1 = np.sin(data1_x)
data1_y2 = np.cos(data1_x)
data2_x = np.linspace(-5, 15, 200)
data2_y1 = data2_x ** 2
data2_y2 = -data2_x ** 2 + 60
# 创建一个新的figure
fig, axs = plt.subplots(nrows=1, ncols=2, figsize=(12, 6))
# 第一轴(左侧)为一条线
axs[0].plot(data1_x, data1_y1, label='Data 1, y1')
axs[0].set_ylabel('y1 axis', color='tab:blue') # 设置y轴标签
axs[0].grid(True)
axs[0].legend()
# 第二轴(右侧)为另一条线
axs[1].plot(data2_x, data2_y1, color='tab:red', label='Data 2, y1')
axs[1].plot(data2_x, data2_y2, color='tab:red', linestyle='--', label='Data 2, y2') # 双线样式
axs[1].set_ylabel('y2 axis', color='tab:red') # 设置第二y轴标签
axs[1].twinx() # 添加第二个y轴
axs[1].spines['right'].set_position(("axes", 1.2)) # 将右边的spine移到合适的位置
axs[1].yaxis.tick_right() # 右边设置y轴刻度
axs[1].grid(True)
axs[1].legend()
# 显示图形
plt.tight_layout()
plt.show()
```
在这个示例中,我们设置了两个子图(axs),分别对应于两组数据。第一轴显示`data1_y1`的数据,第二轴则同时显示`data2_y1`和`data2_y2`的数据,通过`twinx()`功能创建了第二个y轴。
阅读全文