2017-03-07 55 views
-2

我已經使得術語D每次減少一定的數值​​沒有問題,但由於某種原因, t繪製任何一點,我不知道爲什麼,任何可以提供的幫助將不勝感激。我正在使用的代碼如下所示:期限D隨着期限t的增加而下降,但該圖並未提取任何點數

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-')  
+0

您的代碼有很多語句是沒有意義的(像't','D','」計算「等)但問題在別處:'plt.plot'需要兩個列表:x列表和y列表。相反,你傳遞兩個標量變量't'和'D'。你應該將計算的't'和'D'的值收集到兩個列表中,然後繪製它們。 – DyZ

回答

0

通過while循環,tD是每個標量值的結束,所以當你打電話plt.plot,你只繪製一個點。您需要將更新後的t和D的值添加到一對列表中,然後用這些列表作爲您的參數調用plt.plot

一個簡單的方法,你可以創建一個新值的列表,因爲他們計算是從一個空列表[],然後使用列表的append方法開始。查閱文檔以瞭解如何使用它。

我也不確定爲什麼你的行只有"computation",tD。這些線路沒有做任何事情。看起來你想要做的就是發表評論。 A #後跟文本表示註釋,該註釋不是可執行代碼。所以,例如,而不是寫

"computation" 

你想寫

# Computation 
+0

好吧,這是有道理的,但我怎麼做這對清單? 「計算」,t和d這些行只是爲了幫助我更好地理解正在發生的事情,對於編碼來說還是很新的。 – Rogun01

+0

@ Rogun01我已經用更多的細節更新了我的答案,但是如果你不熟悉列表,我建議你在嘗試做其他事情之前閱讀列表,元組,集合和字典。它們是基本的Python數據結構,對於理解如何使用非常重要。 – beeftendon

+0

非常感謝我會閱讀:) – Rogun01

相關問題