2017-09-23 16 views
1

グラフに3つの異なるグラフを表示したいと考えています。これは私のコードです:軸がスケーリングされているときにグラフが表示されない

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

def make_sequence(N:int, alpha:float, beta:float) -> np.ndarray: 
    z_n = np.empty((N, 1)) 
    for n in range(1, N+1): 
     z_n[n-1] = alpha*(1+sqrt(3))**n + beta*(1-sqrt(3))**n 
    return z_n 

x0 = make_sequence(50, 0.0, 1.0) 
x1 = make_sequence(50, 0.0, 99.0) 
x2 = make_sequence(50, 5.0, 5.0) 

plt.plot(x0, 'bo') 
plt.plot(x1, 'ro') 
plt.plot(x2, 'go') 
plt.axis([0, 50, -2, 2]) 
plt.title(r'$z_1,...,z_{50}$') 
plt.xlabel('n') 
plt.legend([r'$\alpha =0$, $\beta =1$', r'$\alpha =0$, $\beta =99$', r'$\alpha =5$, $\beta =5$']) 
plt.show() 

x2がプロット上に表示されないのはなぜですか?
x2だけをプロットしようとすると、軸スケーリングコマンドを削除した場合のみ表示されます。​​max(x2)とを印刷

答えて

1

10~3.3e22からx2範囲ことを示しています。ただし、y軸は-2から2にしかなりません。したがって、x2からの値のいずれも可視範囲内にありません。

あなたはもちろん良くもはやプロットに見られない

enter image description here

しかし、その後、x0x1につながるれ、plt.axis([0, 50, -2, 3.5e22])にスケールを変更することがあります。 3つすべてのシリーズを同じプロットにプロットすることが理にかなっている場合は、自分で決定する必要があります。

関連する問題