2016-12-19 5 views
0

私は単純な興味と複雑な興味の違いを示すプロットを生成しようとしています。私が抱えている問題は、「xとyの最初の次元が同じでなければならない」というエラーが出るということです。私はここで同様の問題を抱えているように見えますが、私は実際の問題にこれらのソリューションを移すのに苦労しています。私は、tとfv_2とfv_3のサイズ/長さとすべての次元を調べました。 fv_1は単なる直線です(コードを参照)。Pythonでの単純かつ複合的な関心; "xとyは同じ第1次元を持たなければならない"

私が間違っている場所を知っている人がいる場合は、アドバイスや提案をいただければ幸いです。

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() 

答えて

0

やってみてください。

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

説明:あなたのコードが間違った場所に)を持っています。あなたの例では、fv_1の要素の数はtの要素の数と等しくありません。値pvの要素の数がlen(t)であることが最も一般的です。

+0

@Robertoメナ@yper @Robertoメナ&。こんにちは、助けてくれてありがとう。しかし、私は今、コードを調整するときに「長さ1の配列だけをPythonのスカラに変換できます」ということになります。私はfv_1のコード行を取り出して、「length-1配列だけをPythonスカラーに変換できる」ようにしました。 – Matthew

0

fv_1のサイズは1000であり、tのサイズは、エラーがここにある10

ある:plt.plot(t,fv_1,'b-')

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

出力:

10 
10000 
10 
10 

この

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

は、だから私はあなたのアドバイスを取り、そのエラーを生成

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

に書いた:

が退治「のみの長さ-1の配列はPythonのスカラに変換することができます」:

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

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

は、一般的に正しい曲線とプロットを生成します。

おかげで再び

関連する問題