Matplotlib は Python で最も広く使われているデータ可視化ライブラリの 1 つです。Matplotlib の人気の多くは、そのカスタマイズオプションによるもので、オブジェクトの階層構造からあらゆる要素を微調整することができます。
このチュートリアルでは、Matplotlibを使用する方法について説明します。
このチュートリアルでは、Matplotlibの軸の範囲(xlim, ylim)を設定し、特定の範囲まで表示を切り詰めたり拡大したりする方法を見ていきます。
プロットの作成
まず、簡単なプロットを作成してみましょう。
import matplotlib.pyplot as plt
import numpy as np
fig, ax = plt.subplots(figsize=(12, 6))
x = np.arange(0, 10, 0.1)
y = np.sin(x)
z = np.cos(x)
ax.plot(y, color='blue', label='Sine wave')
ax.plot(z, color='black', label='Cosine wave')
plt.show()
ここでは、Numpyのarange()関数で生成されたシーケンスにサインとコサイン関数を適用して、0から始まり10
まで、0.1`刻みでプロットしています。このコードを実行すると、次のようになる。
さて、この軸の範囲を微調整してみましょう。現在、0
から100
の範囲です。
Matplotlib での軸の範囲の設定
このビューを小さく、あるいは大きく切り詰めたい場合、X と Y の制限を調整することができます。これらは PyPlot のインスタンスか、 Axes
インスタンスからアクセスすることができます。
Matplotlib で X-Limit (xlim) を設定する方法
まず、PyPlot と Axes
インスタンスを用いて、X-limit を設定しましょう。これらのメソッドは両方ともタプル – 左と右の限界値 – を受け取ります。例えば、X 軸が 25 から 50 までの範囲のデータのみを表示するようにビューを切り詰めたい場合は、 xlim([25, 50])
を使用します。
fig, ax = plt.subplots(figsize=(12, 6))
x = np.arange(0, 10, 0.1)
y = np.sin(x)
z = np.cos(x)
ax.plot(y, color='blue', label='Sine wave')
ax.plot(z, color='black', label='Cosine wave')
plt.xlim([25, 50])
plt.show()
これはX軸の表示を25から50
の間のデータに限定するもので、結果は次のようになります。
これと同じ効果を ax
オブジェクトに設定することで得ることができます。この方法では、複数の Axes
がある場合、それぞれに制限を設定することができます。
import matplotlib.pyplot as plt
import numpy as np
fig = plt.figure(figsize=(12, 6))
x = np.arange(0, 10, 0.1)
y = np.sin(x)
z = np.cos(x)
ax = fig.add_subplot(121)
ax2 = fig.add_subplot(122)
ax.set_title('Full view')
ax.plot(y, color='blue', label='Sine wave')
ax.plot(z, color='black', label='Cosine wave')
ax2.set_title('Truncated view')
ax2.plot(y, color='blue', label='Sine wave')
ax2.plot(z, color='black', label='Cosine wave')
ax2.set_xlim([25, 50])
plt.show()
Matplotlib で Y-リミット (ylim) を設定する方法
さて、Y-limit を設定しましょう。これは、同じ 2 つのアプローチで実現できます。
ax.plot(y, color='blue', label='Sine wave')
ax.plot(z, color='black', label='Cosine wave')
plt.ylim([-1, 0])
または
ax.plot(y, color='blue', label='Sine wave')
ax.plot(z, color='black', label='Cosine wave')
ax.set_ylim([-1, 0])
どちらも結果は
結論
このチュートリアルでは、Python の Matplotlib を使って軸の範囲(つまり X と Y の限界値)を設定する方法について説明しました。
もしあなたがデータ可視化に興味があり、何から始めたらよいかわからない場合は、Pythonでのデータ可視化に関する書籍の束をチェックしてみてください。
Pythonによるデータ可視化
データビジュアライゼーションで危険な存在になる
30日間無条件返金保証
初級から上級まで
定期的に無料で更新(最新更新は2021年4月)
ボーナスリソースやガイドを更新
Pythonでデータ可視化 MatplotlibとPandasは、Pythonの基礎知識を持つ全くの初心者が、PandasとMatplotlibを使って、単純なプロットからインタラクティブなボタンを持つアニメーションの3Dプロットまで、これらのライブラリで高度な作業をするための強力な基盤を構築できるように設計された書籍です。
本書は、Pythonの基本的な知識を持つ方を対象としています。
PandasとMatplotlibについて知っておく必要があることすべてを教えてくれる詳細なガイドです。
Pythonによるデータ可視化」は、Pythonの初級~中級開発者向けの書籍で、Pandasを使った簡単なデータ操作から、MatplotlibやSeabornなどのコアなプロットライブラリ、そしてAltairなどの宣言的・実験的ライブラリの活用方法までを案内しています。具体的には、11章にわたって、9つのPythonライブラリを取り上げています。Pandas、Matplotlib、Seaborn、Bokeh、Altair、Plotly、GGPlot、GeoPandas、そしてVisPyです。
データビジュアライゼーションのユニークで実用的なガイドとして、あなたがキャリアで使うかもしれない多くのツールを紹介しています。