我试图模拟以下化学反应随时间变化的系统,计算并绘制每种分子类型的数目随时间变化的方式:
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吗?
答案 0 :(得分:1)
您可以尝试子图
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()