Matplotlib のグラフの縦横比を指定する方法
ここでは Matplotlib を用いて描いたグラフの縦横比を指定する方法を紹介します。
Matplotlib のグラフの縦横比
Matplotlib を使ってグラフを書いた場合、縦横比を特に何も指定しない場合、既定では図をぴったり埋めるようにグラフが表示されます。
import matplotlib.pyplot as plt
x = [0, 1, 2, 3, 4]
y = [0, .25, .5, .75, 1]
fig, ax = plt.subplots()
ax.plot(x, y)
ax.grid()
plt.show()
この場合、グラフは下のようになります。x 軸と y 軸の範囲は x と y の値を含むように、自動的に調整されています。
このグラフはとても美しいので、これで十分な場合も多いと思います。しかし、x の増加に対して y は微増しかしていないことを、強調あるいは正確にグラフで表現したい場合もあるかと思います。
こうした場合のため、グラフの縦横比を明示的に指定する方法があります。
Axesオブジェクトの aspect オプションでグラフの縦横比を指定することができます。 aspect には、横に対する縦の比率 (アスペクト比) を指定します。
例えば、縦横比 = 1 とするには次のように指定します。
...
# 縦横比の指定
ax.set(aspect=1)
plt.show()
この結果、次のようなグラフになります。
aspect=1 は aspect='equal' と指定しても同じです。
ax.set(aspect='equal') # グラフは上と同じ
さらにaspectオプションを指定する方法として、set()関数の他、次のように set_aspect()関数も使えます。
ax.set_aspect('equal')
Matplotlib のグラフの x と y の範囲を指定する方法
縦横比を調整する、という点では上で説明した通りですが、上のグラフでは縦につぶれた形になっていますので、もう少し広い範囲を表示したい場合もあるでしょう。ここではついでに、x と y の範囲を指定する方法も紹介します。
Matplotlib のグラフの x 軸と y 軸の範囲の指定はそれぞれ、Axesオブジェクトのxlimオプション、ylimオプションで設定可能です。
具体的には、次のように set()関数で次のようにしていします。
...
# 縦横比とx,yの範囲の指定
ax.set(
aspect='equal',
xlim=[-0.25, 4.25],
ylim=[-0.25, 4.25])
plt.show()
これによって、次のようなグラフになります。
以上、ここでは Matplotlib のグラフの縦横比を明示的に指定する方法について説明しました。