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=1aspect='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 のグラフの縦横比を明示的に指定する方法について説明しました。

ここまでお読みいただき、誠にありがとうございます。SNS 等でこの記事をシェアしていただけますと、大変励みになります。どうぞよろしくお願いします。

© 2024 Python 入門