Skip to content
チュートリアル
Matplotlib
Matplotlibでy軸の範囲を設定する方法

Matplotlibのマスター:正確にY軸の範囲を設定する

Matplotlibでy軸の範囲を設定するのに苦戦していませんか?自動的に設定されたy軸の範囲にいらだちを感じ、必要に応じて設定する方法が欲しいと思っていませんか?もし、そうであれば、あなたは正しい場所にいます。この「Matplotlibでy軸の範囲を設定する方法」に関する包括的なガイドにより、あなたは自分の手でプロットのy軸を完全にコントロールできるようになります。

まず、Matplotlibでy軸の範囲を設定することの重要性を理解しましょう。それは単に視覚的魅力の問題ではありません。y軸の範囲を正しく設定することは、データ表現の品質にとって極めて重要です。スケールの誤ったy軸は、データトレンドを歪め、視聴者を誤解に導く可能性があります。したがって、y軸の範囲を手動で設定する方法を知ることは、あなたのプロットの品質を向上させるだけでなく、データ表現の明確さと正確さを向上させます。

解読Matplotlib:Y軸の範囲

まず、Matplotlibでy軸の役割を明確にしましょう。ほとんどの2Dプロットでは、y軸は従属変数を表します。これは、x軸にプロットされた独立変数に応答して変化する変数です。したがって、y軸の範囲はプロット上のこの従属変数の下限と上限を定義します。

たとえば、matplotlibのpyplotモジュールからylim()関数を使用して、y軸の下限と上限を引数として指定することで、y軸の範囲を設定する最も簡単な方法を示します。次に、簡単な例を示します。

import matplotlib.pyplot as plt
 
plt.plot([0, 1, 2, 3, 4], [0, 1, 4, 9, 16])
plt.ylim(0, 20)
plt.show()

この例では、簡単な二次関数をプロットし、plt.ylim(0, 20)を使用してy軸の範囲を0から20に設定しています。

Matplotlib Y軸の範囲:より精密な制御のためにAxesオブジェクトを使用する

plt.ylim()はシンプルなプロットには素晴らしいですが、より複雑なプロットの場合、y軸の範囲についてより細かい制御が必要な場合があります。これがMatplotlibのオブジェクト指向APIの魅力です。

pyplotモジュールではなく、直接Axesオブジェクトを作成して、そのオブジェクトで作業することができます。各Axesオブジェクトには、y軸の範囲を設定するために使用できる多数のメソッドが付属しています: 'set_ylim()'および'set_ybound()'を含む。

Axesオブジェクトを使用してy軸の範囲を設定する方法の例を以下に示します。

fig, ax = plt.subplots()
 
ax.plot([0, 1, 2, 3, 4], [0, 1, 4, 9, 16])
ax.set_ylim(0, 20)
plt.show()

この例では、まず、plt.subplots()を使用してFigureとAxesオブジェクトを作成します。次に、ax.plot()を使用して二次関数をAxesオブジェクトにプロットします。最後に、ax.set_ylim(0, 20)でy軸の範囲を設定します。

動的なY軸の範囲:フライ上のY軸限界の調整

時々、データや他の基準に基づいてy軸範囲を調整したいと思うかもしれません。その場合、Matplotlibでは現在のy軸範囲を取得して必要に応じて変更できる関数が用意されています。ここで重要な関数は、get_ylim()set_ylim()get_ybound()、およびset_ybound()です。

以下は、y軸範囲を動的に設定する方法の例です。

fig、ax = plt.subplots() 
 
ax.plot([01234]、[014916])
ymin、ymax = ax.get_ylim() 
ax.set_ylim(ymin、ymax*1.1) 
plt.show()
 
この例では、最初に `ax.get_ylim()` を使って現在のy軸の範囲を取得します。その後、 `ax.set_ylim(ymin、ymax * 1.1)` で現在の最大値を10%拡張する新しいy軸の範囲を設定します。
 
これらはMatplotlibでy軸範囲を設定する主な方法です。ただし、Matplotlibの多様性により、他の多数のアプローチが可能になるため、次のセクションで詳しく説明します。
 
## 遊び心のある: Y軸範囲の基本を超える
 
Matplotlibは、Y軸範囲を設定するより高度な機能も提供しています。これは、複数のパネル図を扱う場合や、複数のサブプロットに同じY軸範囲を適用する必要がある場合、またはデータに基づいてY軸範囲を動的に調整する必要がある場合に特に有用です。
 
### 複数のサブプロットに同じY軸範囲を設定する
 
いくつかのサブプロットを持つマルチパネル図を作成する場合、一貫性を確保するためすべてのサブプロットに同じY軸範囲を使用することが望ましいかもしれません。すべてのAxesオブジェクトをループして、各々にY軸範囲を設定することで簡単にこれを実現できます。以下はその方法です。
 
```python
fig、axs = plt.subplots(22) 
for ax in axs.flat:
    ax.set_ylim(020)
plt.show()

この例では、まず plt.subplots(2, 2) で2x2のサブプロットグリッドを作成します。その後、結果の配列内のすべてのAxesオブジェクトをループし、 ax.set_ylim(0、20) で各オブジェクトにY軸範囲を設定します。

データに基づいてY軸範囲を動的に調整する

もう1つの高度なテクニックは、データ自体に応じてY軸範囲を調整することです。たとえば、データセット内の最小値から最大値までの範囲をY軸範囲に設定したい場合があります。これを実現する方法の例を以下に示します。

data = [014916] 
fig、ax = plt.subplots() 
ax.plot([01234]、data) 
ax.set_ylim(min(data)、max(data)) 
plt.show()

この例では、最初にデータポイントのリストを定義します。その後、FigureとAxesオブジェクトを作成し、データをAxesオブジェクトにプロットし、Y軸範囲をデータセット内の最小値から最大値までの範囲に設定します。

Matplotlib以外の代替方法:PyGWalkerを使用したデータの視覚化

Matplotlibを使用してpandasのデータフレームをビジュアライズする以外にも、データビジュアライゼーションを簡単に作成できるオープンソースのPythonライブラリ、PyGWalkerがあります。PyGWalker (opens in a new tab)

PyGWalker for Data visualization (opens in a new tab)

Pythonコーディングで複雑な処理を完了する必要はもうなく、単にデータをインポートして変数をドラッグアンドドロップするだけで、さまざまな種類のデータビジュアライゼーションを作成できます。操作のクイックデモビデオは次のとおりです。


Jupyter NotebookでPyGWalkerを使用する方法は次のとおりです。

pip install pygwalker 
import pygwalker as pyg 
gwalker = pyg.walk(df) 

または、Kaggle Notebook / Google Colabで試すことができます:

| Kaggle NotebookでPyGWalkerを実行する (opens in a new tab) | [Google ColabでPyGWalkerを実行する](https://colab.research.google.com/drive/171QUQeq-uTLgSj1u-P9DQig7Md1kpXQ2?usp (opens in a new tab) = sharing) | PyGWalkerに⭐️を与える (opens in a new tab) | |:---:|:---:|:---:| | [![Kaggle NotebookでPyGWalkerを実行する](https://docs-us.oss-us-west-1.aliyuncs.com/img/blog-cover-images/pygwalker-kaggle.png)]( (opens in a new tab)https://www.kaggle.com/asmdef/pygwalker-test)| (opens in a new tab) [![Google ColabでPyGWalkerを実行する](https://docs-us.oss-us-west-1.aliyuncs.com/img/blog-cover-images/pygwalker-google-colab.png)]( (opens in a new tab)https://colab.research.google.com/drive/171QUQeq-uTLgSj1u-P9DQig7Md1kpXQ2?usp (opens in a new tab) = sharing)| [![PyGWalkerを GitHubで実行する](https://docs-us.oss-us-west-1.aliyuncs.com/img/blog-cover-images/pygwalker-github-star.png)]( (opens in a new tab)https://github.com/Kanaries/pygwalker)| (opens in a new tab)

PyGWalkerは、オープンソースコミュニティのサポートに基づいて構築されています。 [PyGWalker GitHub]を必ずチェックして、スターを付けてください(https://github.com/Kanaries/pygwalker)! (opens in a new tab)

##よくある質問

1. matplotlibのylim()とset_ylim()の違いは何ですか?

ylim()は、現在のプロットのy軸範囲を設定するために使用できるmatplotlibの pyplotモジュールの関数です。一方、 set_ylim()は、matplotlibのオブジェクト指向APIのAxesクラスのメソッドであり、特定のAxesオブジェクトのy軸範囲を設定するために使用できます。

2.データに基づいてy軸範囲を自動調整するにはどうすればよいですか?

Axesクラスのautoscale()メソッドを使用して、データに基づいてy軸範囲を自動的にスケーリングできます。さらに制御をするには、get_ylim()メソッドを使用して現在のy軸範囲を取得し、必要に応じて調整してからset_ylim()で設定できます。

3.複数のサブプロットのy軸範囲を一度に設定できますか?

はい、すべてのAxesオブジェクトをループして各オブジェクトのy軸範囲を設定することができます。