Pythonはデータ分析・AI開発において、多様なライブラリ・フレームワークに対応しており、注目を集めているプログラミング言語です。
とくにpythonとデータ分析は相性がよく、ライブラリを活用することで数十行程度のシンプルなコードで高度なデータ分析が実現できるため、ライブラリの学習は必要不可欠です。
中でも、matplotlibはデータの可視化ができるライブラリ。グラフ化やアニメーションの作成ができるので、データ分析や機械学習でよく活用されています。
とはいえ、世の中にはmatplotlibの学習教材が溢れており、何をどのような本で学習を始めてよいか迷っている方もいらっしゃるのではないでしょうか?
そこで本記事では現役データサイエンティストとして日々データ分析に携わっている経験をもとに、matplotlibを学習する際のおすすめの参考書を詳しく解説をしていきます。
監修者
經田 原弘
東京大学大学院新領域創成科学研究科複雑理工学専攻修了。大学時代は3次元の医療データの平滑化処理を研究テーマとし、大学院時代はJAXAと協業し、月探査機かぐやの衛星データから、月面上の水の存否について調査していた。新卒では株式会社リクルートにてレコメンドシステムの開発等に従事し、現在は製造業系スタートアップにてデータサイエンティストとして勤務。応用情報技術者試験・E資格合格者。
matplotlibとは?
まずはmatplotlibとはどのようなライブラリで、どのような場面で活用されているのかの確認から始めていきましょう。Pythonを使ったデータ分析・機械学習で使われる重要なライブラリは以下の通りです。
その中でも、matplotlib(マットプロットリブ)はデータの可視化を行うためのライブラリで、Pythonのデータ分析・機械学習でよく活用されるライブラリのひとつです。
ライブラリ | 機能 |
---|---|
pandas | データ処理においてデータの操作・加工・集計・可視化などを行う |
Numpy | 数値計算において高速で効率的な配列処理を行う |
Matplotlib | さまざまなグラフの描画を行う |
scikit-learn | 機械学習のモデル構築や評価、データの前処理などを行う |
とくに、matplotlibはデータ分析、機械学習、地理情報システム (GIS)、気象データ解析、アプリ開発などの分野で広く使用されています。
さらに、matplotlibはNumpy、Pandas、Seabornなど多くのライブラリと互換性があり、組み合わせて活用することでより高度なデータの可視化を行うことができるので、多くのデータサイエンティストが活用しています。
編集部では他にもpandasやNumpyなど、主要なライブラリの学習に使える参考書を紹介しています。興味のある方は下記からご覧ください。
matplotlibを学習する参考書の選び方
matplotlibを学べる本は非常に多く出版されています。
自分に適した参考書を見つけるために、「選び方」を確認しておきましょう。まずは参考書を選ぶ際に必ずチェックしておきたい「3つのポイント」をご紹介します。
- 自分のレベルに合った内容かどうか
- ほかのライブラリとの連携についても学べる
- サンプルコードが豊富で実務で活用しやすい
ポイント①:自分のレベルに合った内容かどうか
matplotlibの学習本は数多くあり、超入門レベルから専門技術書レベルまでさまざまな本が売られています。
初学者向けと謳いながらも、その他ライブラリの関連知識を要したり、専門的な説明が多い本もあり、自身のレベルと参考書のレベルとマッチしているかをよく吟味する必要があります。
自身のmatplotlibスキルを判断するヒントとして、編集部ではmatplotlibスキルを3段階に分けた表を作成しました。
matplotlibのレベルとスキルセット
レベル | できること |
---|---|
初級レベル | ・軸のカスタマイズ:軸の範囲、ラベル、目盛の設定などをカスタマイズできる ・簡単なグラフの描画:折れ線グラフ、棒グラフ、散布図などを基本的な描画することができる ・プロットのスタイルの変更:グラフやチャートの色、ラインスタイル、マーカー形状などのスタイルの変更ができる |
中級レベル | ・サブプロットの作成:複数のグラフを1つの画像にまとめることができる ・アニメーションの作成:データの変化をわかりやすく視覚化することができる ・3Dグラフの描画:3Dグラフで複雑な関係を持つ3つの変数の間の相互作用を視覚化することができる |
上級レベル | ・ほかのライブラリとの連携:ほかライブラリの連携や拡張機能を利用して、より高度なデータ可視化ができる ・カスタムプロットの作成:自分で作成したグラフやチャートを作成して、独自のデータ可視化手法を開発することができる ・マルチプロットの作成:複数のサブプロットを含む複雑なレイアウトのグラフを作成して、多くの情報を効果的に表示できる |
たとえば、初心者向けの参考書では、折れ線グラフや棒グラフなど簡単なグラフ化などmatplotlibの基礎知識を中心に学習します。
一方、上級者向けの参考書では、ほかのライブラリとの連携方法やマルチプロットの作成方法などを学習できます。
初学者で3Dグラフやサブプロットの作成で学習が止まっている方は、マルチプロットの作成の前に簡単なグラフ化の学習から始めたほうが効率の良い学習になるでしょう。
このように自身のmatplotlibレベルを確認しながら、ひとつひとつを正しい順番で段階的に学んでいくと学習効率がよくなることが期待できます。
まずは上記表を参考に現在のmatplotlibスキルを把握して、適切なレベルの参考書を選びましょう。
ポイント②:ほかのライブラリとの連携についても学べる
matplotlibは多くのライブラリと互換性があり、組み合わせて使うことで複雑なデータの可視化や美しいグラフ化ができるようになります。
たとえば、matplotlibをほかのライブラリと連携すると以下のようなことができます。
ライブラリ | matplotlibと連携してできること |
---|---|
Numpy | ・Numpyと組み合わせてデータの前処理や集計を行うことができる ・NumPyで配列を作成し、それをMatplotlibでグラフ化する |
Pandas | ・Pandasと組み合わせることで、データフレームからグラフを作成する ・Matplotlibで作成したグラフをPandasのデータフレームに追加する |
OpenCV | (OpenCVは、画像処理やコンピュータビジョンのためのオープンソースライブラリ) ・Matplotlibと組み合わせることで、画像の可視化や処理を行うことができる ・OpenCVを使用して画像処理を行い、それをMatplotlibでグラフ化する |
このようにほかのライブラリと組み合わせることで、matplotlibの活用の幅を広げることができるので、ほかのライブラリとの連携を学べる参考書を選ぶことは重要なポイントといえます。
ポイント③:サンプルコードが豊富で実務で活用しやすい
3つ目のポイントはサンプルコードが豊富で実務で活用しやすいことです。初学者にとっては、matplotlibの基本機能や使い方がわからないことが多く、どのように利用するかがわかりにくいことがあります。
matplotlibはグラフの種類やグラフのスタイル(線や色、グリッドなど)によってコードの書き方が異なります。そこで、サンプルコードを参考にして、matplotlibの基本機能や使い方について理解を深めることが重要です。
たとえば、サンプルコードを用いて、折れ線グラフを作成する解説を見てみましょう。
import matplotlib.pyplot as plt
# データの準備
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]
# 折れ線グラフを描画
plt.plot(x, y)
# グラフのタイトルを設定
plt.title('Line Graph')
# x軸、y軸のラベルを設定
plt.xlabel('X')
plt.ylabel('Y')
# グリッド線を表示
plt.grid(True)
# グラフを表示
plt.show()
サンプルコードがあることで、データの準備をしてから「plt.plot(x, y)」で折れ線グラフを描写するといった、どのような順でコードを書けばよいかがひと目でわかります。また、グラフタイトルや軸ラベルの設定方法など関連するコードを同時に学習することができます。
※上記コードでかけるグラフ
さらに、サンプルコードを実際に手を動かして入力することで、参考書で学習した内容が理解できているかどうか明確になり、効率的に学習を進めることができます。
matplotlibを学習するおすすめ参考書6選
ここからは編集部が厳選したmatplotlibを学べる良書を紹介していきます。
【matplotlib学習前の基礎固めにおすすめ】Pythonスタートブック
Python初学者がいきなりmatplotlibの学習を始めると専門用語も多く、つまずく場合もあるかもしれません。Pythonの基礎知識に不安のある方は本書でPythonの基礎固めをしましょう。
本書はPythonの特徴や活用方法の説明にはじまり、データ構造や条件分岐など、Pythonでプログラム作成するための必須知識まで順序立てて体系的に学ぶことができます。
体系的に学ぶことで、ひとつひとつの知識を関連付けて学べるので、学習内容が頭に残りやすくなります。そのため、matplotlibの学習に進んだとき、Pythonの基礎知識で手戻りせずに学習を進めることができます。
【おすすめ】データ分析者のためのPythonデータビジュアライゼーション入門 コードと連動してわかる可視化手法
本書はデータの可視化(ビジュアライゼーション)をサンプルコードとともにその手法を学習できるので、手を動かしながら学習を進めることができます。
本書では、大きく ①グラフ・チャート ②マップ ③ワードクラウド ④インフォグラフィック の4つの可視化の方法を学習できます。
とくに、③ワードクラウド ④インフォグラフィック はmatplotlibとほかのライブラリを組み合わせて作成するので、matplotlibの応用レベルまでマスターできます。
グラフ化・マップでの可視化を学習できる参考書は多いですが、ワードクラウド・インフォグラフィックの方法まで学習できる参考書は数少ないため、データの可視化の手法を網羅的に学習したい方に非常におすすめです。
【おすすめ】Python 実践データ加工/可視化 100本ノック
データ加工や可視化の手法を目的合わせて100パターンも学ぶことができるので、データ分析や機械学習を学びたい方に非常におすすめです。
データの読み込みや前処理、データの集計、データの結合、データの可視化(グラフ作成やマップ作成)など基礎知識から、機械学習への応用まで幅広く学習できます。
また、上記内容を実務で活用されているデータを使って、テキストの理解+問題演習で学べるので、学習内容が定着しやすい構成になっています。
さらに、matplotlibだけでなく、pandasやseaborn、folium、scikit-learnといったデータ分析の重要ライブラリも網羅的に学習できるので、初学者にもおすすめです。
データの加工・可視化を問題集で学習できる参考書はほかにないので、手を動かしながら学びたい方は本書で学習しましょう。
Matplotlib&Seaborn実装ハンドブック (Pythonライブラリ定番セレクション)
本書はmatplotlibとseabornの2つの可視化ライブラリの基礎から応用まで学習できるので、グラフ化の手法をマスターしたいという方におすすめです。
また、グラフ化の目的別に解説されており、作成したいグラフを最短ルートで学ぶことができるので、すぐに実務に活用したい方にもおすすめです。
さらに、応用としてデータサイエンティストがよく活用するAPIリファレンスの活用方法を2つのライブラリを通して学習できます。
APIリファレンスを活用できると、効率的にプログラミングができたり、データの二次利用ができるというメリットがあるので、今後のプログラミングを効率的に行えるようにもなります。
ただ、初学者にはAPIリファレンスの活用方法は難しいので、Pythonの基本知識を身に付けている方におすすめです。
Pythonデータサイエンスハンドブック ―Jupyter、NumPy、pandas、Matplotlib、scikit-learnを使ったデータ分析、機械学習
本書はPythonのデータ分析と機械学習を行うときに活用するライブラリを中心に解説しているので、今後Pythonでデータ分析・機械学習のスキルを高めていきたい方に非常におすすめです。
matplotlibを活用した簡単なグラフ化の基礎から、多重プロット、サブプロット、複数の軸のグラフ化など応用まで幅広く学習できるので、データ分析・機械学習の応用に役立ちます。
また、プログラムの解説にはJupyter Notebookを使用しており、読み手が手軽に実行環境を構築できるようになっているので、実際に手を動かしながら学習できます。
データ分析・機械学習に必要なデータの前処理からデータ分析の結果の可視化までを一気通貫で学習できるので、データサイエンティストの土台作りができます。
Pythonでデータを視覚化する
本書はデータの視覚化の中でもグラフ化の手法を中心に学習できるので、matplotlibの基本的な使い方をマスターできます。
データの視覚化に必要なPythonの基礎知識も併せて学習できるので、Python初学者でも手戻りすることなく、学習を進めることができます。
さらに、初学者がつまずきやすい「データクリーニング」や「モデルの最適化」についても解説しているので、今後データ分析や機械学習の応用を学習したい方に非常におすすめです。
本書は2023年2月21日発売とPythonの最新バージョンで学習できるので、バージョンが古いことによる弊害なく、学習できる点もメリットです。
まとめ
matplotlibを学習する参考書の選び方のポイントやおすすめ参考書を紹介してきました。自分に合った参考書は見つかったでしょうか。
matplotlibは幅広い分野で活用されており、グラフ化やワードクラウドなどさまざまなパターンで可視化できるライブラリなので、データサイエンティストを目指す方にmatplotlibの学習は非常に有益です。本記事が学習を始めるきっかけになれば幸いです。
編集部ではPythonに関連する記事も公開しています。Pythonに興味のある方はぜひこちらの記事もご覧ください。