2017-11-22 5 views
-3

私はmatplotlibを使って2つの配列の値の結果をプロットしますが、結果は私の配列にない点(0、0)を示します。他の点は正しいが、これだけである。以下は私のコードです。matplotlibはエクスプレッションを表示しますか?

import math 
import numpy as np 
import matplotlib.pyplot as plt 

j=0 
x=0.6 

resx = np.zeros((100, 100)) 
rr=np.zeros((1, 100)) 
for r in np.linspace(2.4, 4, 100): 
    rr[0,j] = r 
    for i in range(0, 100): 
     x = r * x * (1-x) 
     resx[j,i] = x 
    plt.plot(rr[0,:], resx[:,j], '.') 
    j=j+1 
plt.show() 
+0

あなたのコードでは、構文エラーがあります。 (0、0) –

+0

申し訳ありませんが、私はそれを変更しました。 – user8654396

答えて

0

だから、問題はあなたの二つの配列rrresxを移入する方法です。

print rr[0,:] 
print resx[:,j] 

を経由してプロットする前に両方の配列をプリントアウトして、あなたにi>jため

[ x_1 ... x_(j) x_(j+1) ... x_100 ] 
[ y_1 ... y_(j) y_(j+1) ... y_100 ] 

x_i=y_i=0フォームの配列を与えます。意志

import math 
import numpy as np 
import matplotlib.pyplot as plt 

x=0.6 

resx = np.zeros((100, 100)) 
rr=np.zeros((1, 100)) 
for j,r in enumerate(np.linspace(2.4, 4, 100)): 

    # Populate x-array 
    rr[0,j] = r 

    # Populate y-array 
    for i in range(0, 100): 
     x = r * x * (1-x) 
     resx[j,i] = x 

    # Only plot last n-j values  
    plt.plot(rr[0,:j], resx[:j,j], '.') 

plt.show() 

:これが意図されていて、(これはあなたの方法でプロット回の束によって)ポイント(0,0)をプロット避けたい場合は、単に最後100-j値をプロットできませんでしたあなたにこのような何かを与える:

enter image description here

関連する問題