【问题标题】:Is there a way I can plot different elements of an array using Matplotlib?有没有办法可以使用 Matplotlib 绘制数组的不同元素?
【发布时间】:2020-05-11 08:42:21
【问题描述】:

我有以下数组:

popul_num = np.array([200, 100, 0, 0])

数组的每个元素代表系统中酶、底物、酶-底物复合物和产物的数量。

我编写了代码来模拟随着时间推移的以下反应,并更新 popul_num 以在每个实体被消费或生产时更改它的值:

E + S --> ES

ES --> E + S

ES --> E + P

然后,函数根据上述发生的反应用新值更新 popul_num 数组。

我正在尝试使用 Matplotlib 绘制由于上述反应发生而导致的实体编号随时间变化的折线图

我尝试为数组的每个索引调用 plt.plot 一次:

plt.plot(popul_num[i]) # i in place of each index 

我试过了:

plt.plot(popul_num[0:3]) 

但是这两种方法总是只返回一个单线图,我做错了什么?

干杯

【问题讨论】:

  • 这个问题很模糊。 plt.plot(popul_num),绘制点 (0,200)、(1,100)、(2,0) 和 (3,0)。这些是您要绘制的点吗?您要绘制多少点?您对要绘制的点进行了哪些更改?
  • 您期望看到的输出是什么?你想要什么样的图表?什么是 population_num 新值?你能举例说明 popul_num 在绘图之前的样子吗?另外,请附上您获得的图表并解释您期望看到的内容。您始终可以使用散点图 (matplotlib.org/3.2.1/api/_as_gen/matplotlib.pyplot.scatter.html)

标签: python arrays matplotlib


【解决方案1】:

您需要存储新状态而不是更新它。

popul_num = np.array([200, 100, 0, 0])

#after single reaction

popul_num = np.array([200, 100, 0, 0], [300, 50, 2, 4])

# now plot 4 separate graphs

for i in range(4):
 plt.plot(list(enumerate(popul_num[:, i])))

plt.show()

【讨论】:

    猜你喜欢
    • 2019-11-14
    • 2020-10-17
    • 1970-01-01
    • 2017-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-01
    • 1970-01-01
    相关资源
    最近更新 更多