2016-12-19 5 views
0

Also versuche ich, eine Grafik zu erzeugen, die den Unterschied zwischen einfachem und zusammengesetztem Interesse demonstriert. Das Problem, das ich habe, ist, dass ich einen Fehler bekomme: "x und y müssen dieselbe erste Dimension haben". Ich habe ähnliche Probleme hier etc, aber ich habe Probleme, diese Lösungen zu meinem eigentlichen Problem zu übertragen. Ich habe die Größe/Länge von t und fv_2 und fv_3 betrachtet und die Dimensionen stimmen alle überein; fv_1 ist nur eine gerade Linie (siehe Code).Simple & Compounded Interesse mit Python; "x und y müssen die gleichen ersten Dimensionen haben"

Wenn es jemanden gibt, der wissen könnte, wo ich falsch liege, Beratung, Vorschläge würden sehr geschätzt werden!

import numpy as np 
import matplotlib.pylab as plt 


pv=1000 
r=0.08 
n=10 

t=np.linspace(0,n,n) 
fv_1=np.ones(len(t)*pv) #horizontal line 
fv_2=pv*(1+r*t) #simple interest 
fv_3=pv*pow(1+r,t) #compounded interest 


plt.title("Simple vs. Compounded Interest Rate") 
plt.xlabel("Number of Years, t") 
plt.ylabel("Pounds Sterling, £") 
plt.xlim(0,11) 
plt.ylim(800,2200) 
plt.plot(t,fv_1,'b-') 
plt.plot(t,fv_2,'g--') 
plt.plot(t,fv_3,'r-') 
plt.show() 

Antwort

0

Versuchen Sie,:

fv_1=np.ones(len(t))*pv 

Erläuterung: Der Code hat ) an falscher Stelle. In Ihrem Beispiel ist die Anzahl der Elemente in fv_1 nicht gleich der Anzahl der Elemente in t. Wahrscheinlich möchten Sie die len(t) Anzahl der Elemente des Werts pv.

+0

@Roberto Mena. Hallo Leute, danke, dass du da geholfen hast. Allerdings bekomme ich jetzt "nur Längen-1-Arrays können in Python-Skalare konvertiert werden", wenn Sie den Code anpassen. Ich habe auch versucht, die Codezeile für fv_1 herauszunehmen und bekam "nur length-1 arrays kann wieder in Python scalars konvertiert werden". – Matthew

0

Die Größe fv_1 1000 und die Größe von t 10

Der Fehler ist hier: plt.plot(t,fv_1,'b-')

print len(t) 
print len(fv_1) 
print len(fv_2) 
print len(fv_3) 

Ausgang:

10 
10000 
10 
10 

diese Fixierung

np.ones(len(t))*pv 
0

Also habe ich Ihren Rat und schrieb in

fv_1=np.ones(len(t))*pv. 

, dass dieser Fehler erzeugt hat:

Loswerden von "nur Länge-1-Arrays können zu Python Skalare umgewandelt werden":

fv_3=pv*pow((1+r),t) 

und Ersetzen Sie es durch sein Äquivalent:

fv_3=pv*(1+r)**t 

generiert die richtigen Kurven und Plot im Allgemeinen.

Thanks again @Roberto Mena & @yper

Verwandte Themen