2017-09-19 5 views
-1

ein Diagramm mit der Verwendung von Punkten aus zwei Listen erstellen Versuch:Mit Matplotlib - Python

y - y[i] und x - y1[i] für Koordinaten y und x. Ich versuche pl.plot() -Funktion zu verwenden. Aber ich bin verloren, wie ich es mit Punkten aus meinen Listen verwenden kann. Können Sie mir raten, wie ich das machen soll?

Mein Code ist unten:

import matplotlib.pyplot as pl 
import random 
import math 
import numpy as np 
disp=0.8 
m=0.5 

y=[] 
y1=[] 
for i in range(200): 
    y.append(0) 
for i in range(100): 
    y1.append(0) 

i=0 
for x in np.arange(0.0, 1.0, 0.005): 
    f=pow(2.71,-((x-m)*(x-m)/(2*(disp))))/(math.sqrt((disp)*2.51)) 
    y[i]=f 
    i=i+1 
print("f1:",f) 
i=0 
for x in np.arange(0.0, 1.0, 0.05): 
    f = 0.5 * (1 + math.erf((x - m)/(1.41 * math.sqrt(disp)))) 
    y[i]=f 
    i=i+1 
print("f2:",f) 
#Do some operations with the values and then put them in y and y1 
#The loop is below. Sure, it is not right... 
#Please,help.. 
for i in y: 
    pl.plot([y[i]],[y1[i]]) 
pl.show() 

Danke für jede Hilfe ...

+1

_Please in der Dokumentation zu Matplotlib_ lesen. Bevor Sie _anything_ tun, lesen Sie die Dokumentation! Bevor Sie sich an eine Schleife "anhängen", die Zeit und Speicher verschwendet, lesen Sie die Dokumentation! Bevor Sie eine Menge Klammern in einen Ausdruck stopfen, der die Lesbarkeit beeinträchtigt, lesen Sie die Dokumentation! Bevor Sie noch einmal versuchen, ein Diagramm zu zeichnen, lesen Sie die Dokumentation! __Lesen Sie die Dokumente, Kumpel, und möge die Macht mit Ihnen sein! __ – ForceBru

Antwort

0

Sie beide Listen plot passieren sollte.

pl.plot(y, y1) 

Sie können auch alle diese Schleifen optimieren, wo Sie y und y1 sind mutiert. Zum Beispiel

for x in np.arange(0.0, 1.0, 0.005): 
    f=pow(2.71,-((x-m)*(x-m)/(2*(disp))))/(math.sqrt((disp)*2.51)) 
    y[i]=f 
    i=i+1 

übersetzt leicht zu

y = np.apply_along_axis(
     lambda x: pow(2.71, -(x-m)*(x-m)/(2*disp))/math.sqrt(disp*2.51), 
     0, 
     np.arange(0.0, 1.0, 0.005) 
    )