Pythonのimportで、なぜpyplotは「matplotlib.pyplot」という書き方なのかの解説

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

pythonで機会学習を行う際に、まず上記のようなライブラリをインストールする事が多いですが、importをする際に、よく見るとpyplot だけが「matplotlib.pyplot」という書き方になっています。

numpyやPandasは一言で表記できるのに、なぜpyplotはその書き方にならないのかの疑問を調べたメモ記事になります。

 

matplotlib.pyplot という書き方になる理由

matplotlibnumpy のインポート方法の違いは、それぞれのライブラリの設計思想と機能の違いに起因しています。

numpy の場合:

  • numpy は、多次元配列を効率的に処理するためのライブラリです。
  • import numpy とすることで、numpy ライブラリ全体の機能にアクセスできます。
  • numpy の関数やクラスは、numpy モジュール直下に定義されているため、numpy.関数名numpy.クラス名 のようにして利用します。

matplotlib の場合:

  • matplotlib は、グラフ描画のためのライブラリであり、非常に多くの機能を持っています。
  • matplotlib は、機能をモジュールごとに分割して提供しており、pyplot はその中の1つです。
  • pyplot は、MATLAB のようなグラフ描画機能を提供するモジュールであり、最も一般的に使用されます。
  • import matplotlib.pyplot as plt とすることで、pyplot モジュールの機能を plt という別名で利用できるようにします。
  • pyplot の関数は、plt.関数名 のようにして利用します。
  • matplotlib には、pyplot 以外にも様々なモジュールがあり、必要に応じて個別にインポートして利用します。

なぜ pyplot が必要なのか:

  • matplotlib は、オブジェクト指向のライブラリであり、グラフの要素を細かく制御できます。
  • 一方で、簡単なグラフを描画したい場合には、pyplot のような手続き的なインターフェースが便利です。
  • pyplot は、グラフ描画に必要なオブジェクト(図や軸など)を自動的に作成し、簡単な関数呼び出しでグラフを描画できるようにします。

matplotlib は、様々なグラフ描画機能を提供する巨大なライブラリであり、その機能をモジュールごとに分割して提供しています。pyplot は、その中でも特に、MATLAB のような手軽なインターフェースを提供するモジュールです。

matplotlib には、pyplot 以外にも以下のような代表的な機能を提供するモジュールがあります。

  • matplotlib.axes:
    • グラフの軸や目盛り、ラベルなどを制御するためのモジュールです。
    • より細かいグラフのカスタマイズを行う際に使用します。
  • matplotlib.figure:
    • グラフ全体を構成する図(Figure)を制御するためのモジュールです。
    • 図のサイズや解像度、背景色などを設定できます。
  • matplotlib.animation:
    • アニメーショングラフを作成するためのモジュールです。
    • 時間変化するデータを視覚化する際に使用します。
  • matplotlib.3d:
    • 3Dグラフを作成するためのモジュールです。
    • 3次元のデータを視覚化する際に使用します。
  • matplotlib.image:
    • 画像を表示するためのモジュールです。
  • matplotlib.widgets:
    • グラフ上にボタンやスライダーなどのインタラクティブな要素を追加するためのモジュールです。

これらのモジュールを組み合わせることで、より高度なグラフ描画やデータ可視化が可能になります。

matplotlib は、非常に柔軟で強力なライブラリであるため、目的に応じて適切なモジュールを選択し、使いこなすことが重要です。