「Natplotlib」は、Python のグラフ作成ライブラリの1つです。
- グラフを描いたり
- アニメーションを作ったり、
- インタラクティブな可視化
をすることができます。
現在、Matplotlib を多くの方が使っている背景には、
アメリカの宇宙望遠鏡科学研究所がグラフ描画のソフトとして、Matplotlib を採用した経緯があり、
財政支援を得ながら発展した歴史があります。
Matplotlib の特徴の1つは、
- 様々なオペレーティングシステムで動作する
- 様々なフォーマットで出力できる
といった点があります。
クロスプラットフォームな描画エンジンと言えます。
- 描画ソフトなににしよう?
- とりあえず Matplotlib なら動くでしょ
という状況なわけです。
例えばデータ分析をする際には、まずデータの傾向を知る必要があります。
matplotlib は、Python から使うことができ、
手間をかけずにデータの可視化を行える、
とても使いやすい可視化ソフトです。
- 散布図
- 棒グラフ
- 等高線
- ヒートマップ
など、統計解析やデータ分析でよく使う図をサクッと作れます。
Matplotlib の描画の方法には、大きく分けて2種類のやり方があります。
(1), MATLAB に似た書き方で描画する方法
(2), オブジェクト指向で描画する方法
本記事では、
(1),MATLAB に沿った描画方法
でわかりやすく解説します。
こちらの描き方は、より直感的でわかりやすい描き方となっています。
Matplotlib を初めて使ってみる初学者の方は、とりあえずこちらの方法をやってみるのもおすすめです。
(2), オブジェクト指向で描画する方法
こちらの方法は、細かな設定を変えやすく、図を柔軟に変えやすい特徴があります。
この描き方についても他の記事で解説したいと思います。
よかったら、SNSなどフォローしておいてもらうと見逃さないかと思います。
- 【Python matplotlib】「matplotlib」とは?インストール方法、グラフ(散布図・棒グラフ・等高線・ヒートマップ)などでの可視化や、グラフを複数表示する方法など、サンプルコードをともに、わかりやすくまとめました【おすすめ 本】
- matoplotllib のインストール方法
- matplotlib の使い方 (0-1) インポートする
- matplotlib の使い方 (0-2) データの生成
- matplotlib の使い方 (1) 折れ線グラフ( plot )
- matplotlib の使い方 (2) 棒グラフ( bar )
- matplotlib の使い方 (3) 散布図 ( scatter )
- matplotlib の使い方 (4) 等高線 ( contour, contourf )
- matplotlib の使い方 (5) ヒートマップ
- matplotlib の使い方 (6) グラフを複数表示 ( subplot )
- matplotlib を学びたいあなたにおすすめの本
【Python matplotlib】「matplotlib」とは?インストール方法、グラフ(散布図・棒グラフ・等高線・ヒートマップ)などでの可視化や、グラフを複数表示する方法など、サンプルコードをともに、わかりやすくまとめました【おすすめ 本】
matoplotllib のインストール方法
Matplotlib を Anaconda で使う(Windows へのインストールにもオススメ)
Anaconda をお使いの場合は、すでにイントールされています。
特にWindowsの方にもオススメです。
ちなみに本記事では、Anaconda の中で Matplotllib を使っていきます。
Anaconda ってなに?ってあなたは、こちらをどうぞ↓
『【Python 環境構築】「Anaconda(アナコンダ)」とは?普通のPython環境との違いは?使うメリットはなに?についてサクッまとめました【anaconda python】』
Matplotlib の公式パッケージをインストールする
以下で、Mac やWindowd, Linux へのインストール方法をサクッとまとめておきます。
以下の2つのコマンドを順に実行してインストールします↓
$ python -m pip install -U pip
$ python -m pip install -U matplotlib
サードパーティのMatplotlib のインストール方法
Matplotlib を Mac にインストールする
Mac へのインストールは、Anaconda で使う場合と違い、複雑です。
- macOS のバージョン
- アーキテクチャの違い(x86, ppc, universal など)
- libping や FreeType を前もってインストール
といった点があるからです。
ここで全ての場合を解説するのは無理なので、
インストール方法の1例をご紹介します。
(1), libping や FreeType を前もってインストール
Homebrew を使うならこちら↓
$ brew install limping freetype pkg-config
もしMacPorts を使うなら以下です↓
$ port install limping free type pkgconfig
(2), Matplotlib のインストール
Matplotlib をインストールするには以下のコマンドを使います
$ python -mpip install
Matplotlib を Linux にインストールする
(0). まず、Matplotlib のインストールに必要なものを先にインストールします。
Debian / Ubuntu へのインストール方法はこちら↓
$ sudo apt-get build-dep python-matplotlib
Fedora へのインストール方法はこちら↓
$ sudo def builddep python-matplotlib
RedHat の場合は、
$ yum-builddep
$ su -c “yum-builddep python-matplotlib”
(1), ソースコードからインストールします
[1], 以下のどちらかを実行します
$ git clone git@github.com:matplotlib/matplotlib.git
もしくは
$ git clone git://github.com/matplotlib/matplotlib.giit
[2], matplotlib をインストールします
$ cd matplotlib
$ python -mpip install
matplotlib の使い方 (0-1) インポートする
matplotlib は、インポートすることで使えるようになります。
matplotlib を使う時には、
import marplotlib.pyplot
を使います。
as plt
で略して書く手間を減らすのが一般的です。
matplotlib の使い方 (0-2) データの生成
今回は、グラフの作成をシンプルに学ぶために、
同じデータを使います。
変数として
names という変数名に(のび太、しずか、ドラえもん、ジャイアン、スネ夫)を代入しています。
names = [ ‘nobita’, ‘sizuka’, ‘doraemon’, ‘jyaian’, ‘suneo’]
値として
valuesという変数名にして(10, 80, 100, 50, 60)を代入しています。
values = ( 10, 80, 100, 50, 60 )
と設定しています。
matplotlib の使い方 (1) 折れ線グラフ( plot )
折れ線グラフは、matplotlib の plotメソッドを使います。
plt.plot( 横軸にしたい変数, 縦軸にしたい変数 )
の形で使います。
matplotlib の使い方 (2) 棒グラフ( bar )
棒グラフは、matplotlib の barメソッドを使います。
plt.bar( 横軸にしたい変数, 縦軸にしたい変数 )
の形で使います。
matplotlib の使い方 (3) 散布図 ( scatter )
散布図は、matplotlib の scatter メソッドを使います。
plt.scatter( 横軸にしたい変数, 縦軸にしたい変数 )
の形で使います。
matplotlib の使い方 (4) 等高線 ( contour, contourf )
等高線図を描くために、データを作ります。
等高線図では、格子と、格子に対する値を設定して描画します。
データ生成のやり方にはいろいろあります。
ここでは、
変数 x に1〜10の整数を入れています。
変数 y は、変数 x の型を変換しています。
変数 x は、10個のベクトル配列です。
変数 y は、10行1列の行列になっています。
これをかけ算した変数 h は、10行10列の行列になっています。
また、それぞれの値は、xとyのそれぞれの値のかけ算した結果になっています。
(numpy アレイのなので、ブロードキャストされています)
変数 h の値の色は、levels という変数で指定しています。
levels = [0, 10, ,20, 30, 40, 50, 60, 70, 80, 90, 100 ]
としています。
この目盛りごとの色が変わって表示させることができます。
等高線図を描いてみます。
等高線図は、matplotlib の contour メソッドを使います。
plt.contour( 格子の値, 色の指定 )
の形で使います。
色を塗りつぶした等高線図にしたい場合は、
matplotlib の contourf メソッドを使います。
plt.contourf( 格子の値, 色の指定 )
の形で使います。
matplotlib の使い方 (5) ヒートマップ
ヒートマップ図は、matplotlib の pcolor メソッドを使います。
plt.pcolor( 格子の値 )
の形で使います。
カラーバーを合わせて表示させたいなら、
plt.colorbar( )
を使います。
複数のグラフをまとめて表示させることができます。
matplotlib の使い方 (6) グラフを複数表示 ( subplot )
全体的な流れとしては、以下のようにします。
- グラフの場所を指定( plt.subplot(x,y,z) )
- グラフの内容を指定( plt.xx( ) )
- 最後に図の表示( plt.show( ) )
グラフの場所は、matplotlib の subplot メソッド を使います。
plt.subplot( 行番号、列番号、通し番号)
のように指定します。
例えば、6つのグラフを、2行3列にして表示したいとします。
各グラフでは、6つのエリアの中のどこか、を指定する必要があります。
今回は、2行3列に図を並べるので、
( 2, 3, X )
として、Xについては、左上からスタートして、
行方向に進み、1番右に進んだら次の列に行きます。
Xには、この通し番号を使います。
図で描くと、赤の数字のようになります↓
というわけで、
matplotlib によるグラフの描き方のイメージは持っていただけたのではないでしょうか。
とは言っても、
- もっと他のグラフを描きたい
- 違う書き方はないの?
- 細かいところを修正したい
といったことが必要になるかもしれません。
そういった場合には、より詳しく学ぶのがおすすめです
matplotlib を学びたいあなたにおすすめの本
Matplotlib&Seaborn実装ハンドブック (Pythonライブラリ定番セレクション)
本書は、Matplotlib に加えて、Python でグラフを描くためのライブラリ Seaborn も学べるお得な1冊です。
Matplotlib では42項目について、それぞれわかりやすく解説がされています。
ハンドブックなので、描きたいグラフに近いものを辞書的に参照しながら使えるので、手元にあると作業がはかどる1冊となっています。
初心者向けPythonデータ分析入門: Numpy/Pandas/Matplotlib/Scikit-learn/Keras対応 (神草出版)
本書は Matplotllib だけでなく、データ分析で役立つ NumPy, Pandas, Skit-learn, Keras も一緒に学べる効率的な1冊です。
Matplotlib については概要がまとめられており、サクッと全体像をつかむのにオススメです。
Pythonデータサイエンスハンドブック ―Jupyter、NumPy、pandas、Matplotlib、scikit-learnを使ったデータ分析、機械学習
本書は、Python データサイエンスで役立つライブラリ等が網羅的に解説されたハンドブックです。
これ1冊あれば、基本的な使い方はだいたい網羅されています。
データサイエンスについて、大まかな概要をつかんだ後で、さらに詳しく学んでいくのにおすすめの1冊です。
こちらもございます↓
matplotlib Plotting Cookbook (English Edition)
Mastering matplotlib (English Edition)
こちらもございます↓
『【Python NumPy 独学】「NumPy」とは?読み方、何のために使うのか、基本的な使い方をサンプルコードとともに、まとめました【Python 入門】』