
Matplotlib は、Python における 2 次元・3 次元グラフ描画のデファクトスタンダードとなっている OSS 可視化ライブラリです。2003 年に神経科学者の John D. Hunter が、MATLAB に代わる無償の科学可視化環境を求めて開発を始め、その後コミュニティの貢献を集めて成長しました。プロットの細部までコードで制御できる柔軟性と、論文品質の PDF・PNG・SVG 出力に対応できる成熟度から、研究者・データサイエンティストの間で標準ツールとして長年使われ続けています。seaborn・pandas・scikit-learn など多くのライブラリが内部で Matplotlib を活用しています。
この記事の目次
- FigureとAxesの階層モデル
- John Hunter博士から始まったOSS
- 論文図から実務ダッシュボードまで
- seabornやPlotlyとの使い分け
- まとめ
FigureとAxesの階層モデル

Matplotlib の中心は Figure・Axes・Artist の階層構造です。Figure はウィンドウ全体に相当する描画キャンバスで、その中に複数の Axes(実際の座標系を持つグラフ領域)を配置できます。Axes には Line・Patch・Text などの Artist が紐づき、それぞれが描画オブジェクトとして属性を持ちます。これにより、グリッドのスタイル・凡例・軸ラベル・色などを細部までプログラムで指定できます。
API には 2 系統があります。MATLAB ライクで手軽な pyplot インタフェース(plt.plot・plt.title 等)と、明示的に Figure と Axes を生成して操作するオブジェクト指向インタフェースです。実務的には後者が推奨されており、fig, ax = plt.subplots() で取得した ax に対してメソッドを呼ぶ書き方が、保守性の高いコードを書く上での標準スタイルとなっています。
John Hunter博士から始まったOSS

Matplotlib は 2003 年、当時シカゴ大学で神経科学のポスドクをしていた John D. Hunter が、てんかん患者の脳波解析のために MATLAB ライセンスに依存しない可視化環境を必要として開発を始めました。最初の公開版は MATLAB の構文に強くインスパイアされており、その後オープンソースコミュニティに広く受け入れられました。2008 年には CiSE 誌に解説論文が掲載され、引用されるアカデミックインフラとなっていきます。
Hunter は 2012 年に 44 歳の若さで逝去しましたが、Michael Droettboom・Thomas Caswell らが開発をリードし、現在は NumFOCUS の財政支援を受けて継続的に進化しています。3D 描画モジュールやアニメーション、Jupyter Widget 連携の整備、デフォルトカラーマップ「viridis」など使い勝手の改善も継続的に行われ、Python データ可視化の中心としての地位を保ち続けています。
論文図から実務ダッシュボードまで

Matplotlib の最も典型的なユースケースは、論文・レポート向けの図の作成です。PDF・SVG・EPS の高品質ベクタ出力が可能で、フォントや軸の細かな調整に対応できるため、学術出版で求められる体裁の図を再現性高く生成できます。研究者にとっては、rcParams を共有することでチーム間のスタイル統一を行える点も重要な利点です。
機械学習の現場では、学習曲線・混同行列・特徴量重要度などを Matplotlib で描画するのが定番です。Jupyter Notebook 内で plt.show() するインタラクティブな探索から、CI で画像を出力してダッシュボードに貼り付ける自動化まで、同じコードで対応できます。pandas の DataFrame.plot() や seaborn は内部で Matplotlib を呼んでおり、結果として裏方として常に動き続けるライブラリでもあります。
seabornやPlotlyとの使い分け

seaborn は Matplotlib の上に構築された高位ライブラリで、統計的な可視化(散布図行列・回帰直線・ヒートマップなど)を数行で美しく描けます。一方で、Plotly や Bokeh、Altair は Web ブラウザ上での対話操作(ズーム・ホバー)を前提とした可視化に強く、ダッシュボード用途で広く使われています。Plotly Dash や Streamlit などのフレームワークと組み合わせるのが定番です。
それでも Matplotlib が選ばれ続けるのは、制御可能な範囲の広さと出力品質、そして既存資料の圧倒的な蓄積によるものです。論文・書籍・学習動画に登場するコード例の多くが Matplotlib をベースにしており、再現性とトラブルシュートのしやすさで他を圧倒します。実務では「探索は seaborn、対話は Plotly、最終納品は Matplotlib」のように、目的に応じて使い分けるのが現実的なアプローチです。
まとめ
Matplotlib は 2003 年に John Hunter が始めた個人プロジェクトから、Python 可視化の標準として 20 年以上君臨し続けています。新興の対話的ライブラリが登場した現在も、論文品質と細部制御の点で代替の利かない存在であり、データを語る上で欠かせない道具であり続けています。
※本記事はIT用語辞典の手書きドラフトです。公開前に最新情報・出典を確認のうえ加筆修正してください。

コメント