【matplotlib】X軸やY軸の数値を反転させる方法[Python]

  • URLをコピーしました!
目次

matplotlib

前回、PythonでSciPyのfind_peaksを使って、極大値(上向のピーク)、極小値(下向きのピーク)、その両方とゼロ交差点を取得する方法を紹介しました。

今回はmatplotlibでX軸やY軸の数値を反転させる方法を紹介します。

つまり通常X軸であれば左が小さい数値で、右が大きな数値ですが、逆に左が大きな数値、右が小さな数値になります。

Y軸であれば上が大きな数値、下が小さな数値であるところ、上が小さな数値、下が大きな数値になります。

とりあえず基本となるプログラムをこんな感じで作成してみました。

import matplotlib.pyplot as plt

x = range(-10, 10)
y = [x_val**3 for x_val in x]

fig = plt.figure()
plt.clf()

plt.plot(x, y)

plt.show()

実行結果

それでは始めていきましょう。

X軸の数値を反転させる方法

まずはX軸の数値を反転させてみます。

X軸の数値を反転させるには「plt.gca().invert_xaxis()」を用います。

import matplotlib.pyplot as plt

x = range(-10, 10)
y = [x_val**3 for x_val in x]

fig = plt.figure()
plt.clf()

plt.plot(x, y)

plt.gca().invert_xaxis()

plt.show()

実行結果

Y軸の数値を反転させる方法

Y軸の数値を反転させるには、「plt.gca().invert_yaxis()」を用います。

import matplotlib.pyplot as plt

x = range(-10, 10)
y = [x_val**3 for x_val in x]

fig = plt.figure()
plt.clf()

plt.plot(x, y)

plt.gca().invert_yaxis()

plt.show()

実行結果

xlimやylimを使う方法

実は軸の数値を反転させるには、上記の「plt.gca().invert_xaxis()」や「plt.gca().invert_yaxis()」を使う以外に、xlimやylimを使う方法があります。

ただし表示上少し異なる部分が出てくるので注意です。

どう違うかは実際にやってみて確認しましょう。

まずはxlimを使って「グラフの最大値を表示の最小値」に、「グラフの最小値を表示の最大値」にしてみます。

import matplotlib.pyplot as plt

x = range(-10, 10)
y = [x_val**3 for x_val in x]

fig = plt.figure()
plt.clf()

plt.plot(x, y)

plt.xlim(max(x), min(x))

plt.show()

実行結果

次にylimを使って「グラフの最大値を表示の最小値」に、「グラフの最小値を表示の最大値」にしてみます。

import matplotlib.pyplot as plt

x = range(-10, 10)
y = [x_val**3 for x_val in x]

fig = plt.figure()
plt.clf()

plt.plot(x, y)

plt.ylim(max(y), min(y))

plt.show()

実行結果

先ほどの「plt.gca().invert_xaxis()」、「plt.gca().invert_yaxis()」を使った時との違いが分かりましたでしょうか。

実はxlim、ylimを使うと、グラフの端がその値になってしまうため、グラフがスパッと切られたような表示になってしまいます。

「plt.gca().invert_xaxis()」、「plt.gca().invert_yaxis()」の場合はグラフの末端から少し間を空けてグラフエリアが設定されることから、末端であることが分かる状態で表示されます。

ということでグラフ全体を表示したい場合は、あまりxlim、ylimを使わない方がよいようです。

次回はpandasでデータをもつデータフレームを作成する方法を紹介します。

ではでは今回はこんな感じで。

よかったらシェアしてね!
  • URLをコピーしました!

コメント

コメントする

目次