有没有办法在 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()
我正在尝试模拟以下随时间变化的化学反应系统,计算并绘制每种分子类型的数量随时间变化的情况:
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()