2017-03-07 2 views
-2

Ich habe den Term D jedes Mal um einen bestimmten Wert verringert, kein Problem, aber aus irgendeinem Grund ist die Handlung nicht ' Ich zeichne einen der Punkte und ich bin mir nicht sicher, warum, jede Hilfe, die zur Verfügung gestellt werden kann, würde sehr geschätzt werden. Der Code, den ich verwendet, wird unten dargestellt:Term D nimmt ab, da der Term t ansteigt, aber der Plot nimmt keinen der Punkte auf

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

Ihr Code schreiben möchten, hat eine Menge von Aussagen, die keinen Sinn (wie 't' machen, 'D','“ Berechnung "', etc.) Aber das Problem ist woanders: 'plt.plot' benötigt zwei Listen: eine Liste von x's und eine Liste von y's. Stattdessen übergeben Sie zwei skalare Variablen, "t" und "D". Sie sammeln die berechneten Werte von "t" und "D" in zwei Listen und zeichnen sie dann auf. – DyZ

Antwort

0

Am Ende Ihrer while-Schleife, t und D sind jeweils skalare Werte, also wenn Sie plt.plot nennen, sind Sie nur einen einzigen Punkt Plotten. Sie müssen Ihre aktualisierten Werte von t und D zu einem Listenpaar hinzufügen und dann plt.plot mit diesen Listen als Argumente aufrufen.

Eine einfache Möglichkeit, eine Liste mit neuen Werten zu erstellen, wie sie berechnet werden, besteht darin, mit einer leeren Liste [] zu beginnen und dann die append Methode der Liste zu verwenden. Lesen Sie in der Dokumentation nach, wie Sie es verwenden können.

Ich bin mir auch nicht sicher, warum Sie Zeilen haben, die nur "computation", t und sind. Diese Linien machen nichts. Es sieht so aus, als ob Sie einen Kommentar hinterlassen möchten. A # gefolgt von Text zeigt einen Kommentar an, der kein ausführbarer Code ist. So zum Beispiel, statt

"computation" 

Schreiben Sie werden

# Computation 
+0

ok das macht Sinn, aber wie mache ich das Paar Listen? Die Zeilen "computation", t und d sind nur da, um mir zu zeigen, was besser läuft, noch ziemlich neu in der Programmierung. – Rogun01

+0

@ Rogun01 Ich habe meine Antwort mit ein wenig mehr Details aktualisiert, aber wenn Sie mit Listen nicht vertraut sind, empfehle ich nur auf Listen, Tupel, Sets und Wörterbücher zu lesen, bevor Sie versuchen, etwas anderes zu tun. Sie sind grundlegende Python-Datenstrukturen, die ziemlich wichtig sind, um zu verstehen, wie man sie benutzt. – beeftendon

+0

danke sehr, ich werde lesen :) – Rogun01