流れに従ひて己を失はず.

日々の研究について書きます

plt.xlim()が効かないときのメモ

matplotlibで軸の範囲を指定しているのにうまく描画できないときのメモ.

t = np.linspace(0,2*np.pi,100)
x = 2.0*np.cos(t)
y = 2.0*np.sin(t) 
plt.figure()
plt.axis('equal')
plt.plot(x, y)
plt.xlabel("x")
plt.ylabel("y")
plt.xlim([-5,5])
plt.ylim([-5,5])
plt.show()

f:id:Yasutchi:20190219215524p:plain

上のコードでは以下のようにx軸y軸ともに[-5,5]の範囲で指定しているにもかかわらずy軸の範囲がおかしい.

plt.xlim([-5,5])
plt.ylim([-5,5])

これはx軸y軸の比率を均等にするために指定していた

plt.axis('equal')

が良くなかったらしく,

plt.gca().set_aspect('equal', adjustable='box')

に変更したらちゃんと動いた.

t = np.linspace(0,2*np.pi,100)
x = 2.0*np.cos(t)
y = 2.0*np.sin(t) 
plt.figure()
plt.gca().set_aspect('equal', adjustable='box')
plt.plot(x, y)
plt.xlabel("x")
plt.ylabel("y")
plt.xlim([-5,5])
plt.ylim([-5,5])
plt.show()

f:id:Yasutchi:20190219220125p:plain

参考URL:
https://github.com/matplotlib/matplotlib/issues/8093
https://stackoverflow.com/questions/17990845/how-to-equalize-the-scales-of-x-axis-and-y-axis-in-python-matplotlib