なんてことはよくある。
それは、matplotlib.pyplot が頭がいいため。
勝手に縦横スケールを最適にしてくれるのだ。
しかしこれでは勝手が良くないので、もちろん縦横比を1:1にしてくれる方法は用意されている。
要は公式サイトの例に従って
plt.axes().set_aspect('equal', 'datalim')
を入れればいいだけだ。
This page shows how to set the aspect ratio to equal.
このページでは図のアスペクト比、つまり縦横比を1:1にする方法を示します。
このページでは図のアスペクト比、つまり縦横比を1:1にする方法を示します。
In [1]:
%matplotlib inline
import numpy as np
import matplotlib.pyplot as plt
In [2]:
t = np.linspace(0,2*np.pi,100)
x = np.cos(t)
y = 0.1*np.sin(t) # 縦は-0.1から0.1まで
In [3]:
plt.figure(figsize=(3,3))
plt.plot(x,y)
Out[3]:
In [4]:
plt.figure(figsize=(3,3))
plt.plot(x,y)
plt.axes().set_aspect('equal', 'datalim')
plt.savefig("./aspect_ratio.png",dpi=250)