Python 项D随着项t的增加而减少,但绘图没有拾取任何点

Python 项D随着项t的增加而减少,但绘图没有拾取任何点,python,matplotlib,Python,Matplotlib,我已经使术语D每次减少一定的值没有问题,但由于某种原因,绘图没有绘制任何点,我不知道为什么,如果能提供任何帮助,将不胜感激。我使用的代码如下所示: import matplotlib.pyplot as plt dam=0.82 "computation" D=dam Dcrit=2.6*10**-10 C2=0.07 t=0 while t<10: t print(t) D print(D) delta

我已经使术语D每次减少一定的值没有问题,但由于某种原因,绘图没有绘制任何点,我不知道为什么,如果能提供任何帮助,将不胜感激。我使用的代码如下所示:

import matplotlib.pyplot as plt 

dam=0.82

"computation"
D=dam
Dcrit=2.6*10**-10
C2=0.07
t=0
while t<10:
        t
        print(t)
        D
        print(D)
        deltaD=D-Dcrit
        print (deltaD, 'damage')
        Sdam=deltaD
        print (Sdam, 'stimulus')
        dD=C2*Sdam
        print(dD,'change in damage')
        D=D-dD
        print (D, 'Damage')
        t+=1
        print (t, 'time')

plt.figure(1)
plt.title('Damage vs time')
plt.xlabel('Time')
plt.ylabel('Damage')
plt.plot(t,D,'r-')    

在while循环结束时,t和D都是标量值,因此当您调用plt.plot时,您只能绘制一个点。您需要将更新后的t和D值添加到一对列表中,然后使用这些列表作为参数调用plt.plot

一种在计算新值时创建具有新值的列表的简单方法是从空列表[]开始,然后使用列表的方法。查看文档了解如何使用它

我也不知道为什么你会有一些仅仅是计算,t和D的行,这些行没有任何作用。看起来你想在那里做的就是留下评论。后跟文本表示注释,该注释不是可执行代码。比如说,与其写作

"computation"
你会想写的

# Computation

您的代码中有许多像t、D、计算等毫无意义的语句,但问题在别处:plt.plot需要两个列表:一个x列表和一个y列表。相反,传递两个标量变量t和D。将t和D的计算值收集到两个列表中,然后绘制它们。好的,这很有意义,但如何生成这对列表?行计算、t和d只是为了帮助我更好地可视化正在发生的事情,对编码来说还是很新的。@Rogun01我已经更新了我的答案,提供了更多的细节,但是如果您不熟悉列表,我建议您在尝试做任何其他事情之前,先阅读列表、元组、集合和字典。它们是基本的Python数据结构,对于理解如何使用它们非常重要。这就是我的全部工作。感谢您的帮助:@Rogun01很高兴您找到了它!