有没有办法在 python 中使用 matplotlib 一次绘制两个图形?

Is there a way to plot two graphs at once using matplotlib in python?

我正在尝试模拟以下随时间变化的化学反应系统,计算并绘制每种分子类型的数量随时间变化的情况:

1S + 0T + 0U --> 0S + 0T + 0U
2S + 0T + 0U --> 0S + 1T + 0U 
0S + 1T + 0U --> 2S + 0T + 0U
0S + 1T + 0U --> 0S + 0T + 1U   

因为 S 在两个反应中使用,在一个反应​​中被消耗而在另一个反应中产生,所以当我绘制它们时,结果有点偏斜。目前,我必须进行绘图的代码如下:

for i, label in enumerate(['S', 'T', 'U']):
    plt.plot(popul_num_all[:, i], label=label)
plt.legend()
plt.tight_layout()
plt.show()

产生以下情节

此图是根据数组的元素创建的:popul_num = np.array([S, T, U]) 其中我使用迭代来更新和存储分子数随时间变化的新值

但是 S 的线看起来特别糟糕,有没有办法将绘制在一张图上的 S 线与另一张图上绘制的 T 和 U 线分开?

最简单的方法是只编写两个枚举函数,一个用于 S,另一个用于 T 和 U?

你可以试试子图

fig, (ax1, ax2) = plt.subplots(1, 2)

ax1.plot(popul_num_all[:, 0], label='S')
ax1.legend()

for i, label in enumerate(['T', 'U']):
    ax2.plot(popul_num_all[:, i+1], label=label)

ax2.legend()
plt.tight_layout()
plt.show()