【Python入門】ライブラリmatplotlibの基本的な使い方

※こちらの記事は、プロスタ編集部が現在大変人気の高いPythonの文法記事を公開することで、皆様の学習にお役に立ちたい意図で投稿しております。
参考サイト：[【Python入門】ライブラリmatplotlibの基本的な使い方](http://programming-study.com/technology/python-matplotlib/)

#【Python入門】ライブラリmatplotlibの基本的な使い方


Pythonではnumpyやscipyといったライブラリを使うことで科学計算を簡単に行うことができますが、そういった計算結果をグラフなどで図表できると分かりやすいですよね。そんな時に便利なのがmatplotlibというライブラリです。matplotlibを使えばPythonでデータをグラフにプロットできるようになります。numpy、scipyと組み合わせることで、Pythonだけでデータの読み込み・加工・計算、そしてプロットが行えます。

今回はmatplotlibの基本的な使い方について説明します。


##matplotlibのインストール

###numpy・scipyのインストール

matplotlibはnumpyおよびscipyと組み合わせることが多いです。絶対ではありませんが、もし必要な場合は先にnumpyおよびscipyをインストールしておきましょう。

###matplotlibをインストール

matplotlibをインストールします。matplotlibはpipコマンドでインストールすることができます。

```
pip install matplotlib
```

もしくはmatplotlibのページからファイルをダウンロードし、ダウンロードしたファイルをpipコマンドでインストールしてください。

[http://www.lfd.uci.edu/~gohlke/pythonlibs/](http://www.lfd.uci.edu/~gohlke/pythonlibs/)

pipコマンド

```
pip install さきほどダウンロードしたファイルのパス
```

matplotlibにもnumpyやscipyと同じくいくつかのバージョンがあるので、自分のpythonやOSにあったバージョンをダウンロードしてください。
例えば「matplotlib-2.0.0-cp36-cp36m-win_amd64.whl」というファイルはpython3.6、64ビットのWindows向けとなっています。

##matplotlibを使う

###グラフを描画する

matplotlibのインストールが終わったら、さっそくグラフを表示してみます。グラフの表示にはmatplotlib.pyplotモジュールのplot()およびshow()を使用します。

```
from matplotlib import pyplot

pyplot.plot(x軸, y軸)
pyplot.show()
```

plot()の引数にはシーケンス（numpy配列やリスト）を渡します。最初の引数がx軸、2つ目の引数がy軸を表します。plot()でデータをプロットし、show()で実際に画面に表示します。

```
import math
import numpy as np
from matplotlib import pyplot

pi = math.pi   #mathモジュールのπを利用

x = np.linspace(0, 2*pi, 100)  #0から2πまでの範囲を100分割したnumpy配列
y = np.sin(x)

pyplot.plot(x, y)
pyplot.show()
```

実行結果
![figure_1.png](https://qiita-image-store.s3.amazonaws.com/0/152507/9721f53f-cabe-8404-3e21-ee3e642adbfe.png)


この例では三角関数のsinをnumpyで計算し、その結果をmatplotlibで表示しています。数字で見るよりも視覚的で理解しやすいです。

##グラフの設定

plot()およびshow()でグラフの表示ができましたが、このグラフには情報がほとんどありません。今回の例はsinの有名なグラフなので分かる人はすぐ分かりますが、通常はタイトルや軸名、凡例などを設定してそのグラフが何を表しているかを示す必要があります。

matplotlibならグラフの設定も簡単に行えます。

～ここまでは上記の例と同じなので省略～

```
#凡例のためにlabelキーワードで凡例名をつける
pyplot.plot(x, y, label='sin')

#グラフタイトル
pyplot.title('Sin Graph')

#グラフの軸
pyplot.xlabel('X-Axis')
pyplot.ylabel('Y-Axis')

#グラフの凡例
pyplot.legend()

pyplot.show()
```

実行結果
![figure_2.png](https://qiita-image-store.s3.amazonaws.com/0/152507/1d47270b-508e-301d-c7bb-bc248c813481.png)


この例ではさきほどのsinのグラフにタイトル、軸名、凡例をつけました。凡例をつける際にはplot()のlabelキーワードで凡例名をつけるのを忘れないようにしましょう。グラフの設定はこのほかにも線の色や線種の変更など、さまざまなことができます。

##複数のグラフを表示

さきほどの例ではsinのグラフだけを表示していましたが、plot()でデータを追加することで複数のデータを表示できます。

```
pi = math.pi

x = np.linspace(0, 2*pi, 100)
sin_y = np.sin(x)
cos_y = np.cos(x)  #新たにcosを計算

pyplot.plot(x, sin_y, label='sin')
pyplot.plot(x, cos_y, label='cos')  #cosの値をプロット

#グラフタイトル
pyplot.title('Sin And Cos Graph')

#グラフの軸
pyplot.xlabel('X-Axis')
pyplot.ylabel('Y-Axis')

#グラフの凡例
pyplot.legend()

pyplot.show()
```

実行結果
![figure_3.png](https://qiita-image-store.s3.amazonaws.com/0/152507/1b111a5d-45cd-8350-c240-3948de21be21.png)


この例では先ほどまでのsinに加えてcosのグラフも表示しています。2つのグラフを同時に表示することができました。なお、複数のグラフを表示するときはlabelキーワードとlegendを使って凡例を表示するのを忘れないようにしましょう。

おすすめ

➡[【無料で使える】Pythonを勉強できる学習サイト7つ](http://programming-study.com/language/python-site/)
➡[Pythonの本・参考書の評判](http://programming-study.com/language/python-books/)