Matplotlibで1つのグラフを描写するまとめ[レポートなどに]

matplotlib はデータを視覚化するための機能が豊富に揃っているライブラリのことです.
さて、今回はグラフが1つ表示させたい場合にMatplotlibをどのように扱って行くかを解説していきます.

+ matplotlibを使い始めたばかりの方[**1. グラフの描写**]
+ グラフにグリットやラベルをどのように入れるか忘れた方[**2. グラフの装飾**]

などを対象に書いていきます.



#今回説明するもの
1. **グラフの描写**
    1. グラフにデータをプロットする
    2. グラフの一部だけ表示させる


2. **グラフに装飾する**
    3. グラフの要素に名前を設定する
    4. グラフにグリッドを表示する
    5. グラフの軸に目盛りを設定する


#1. グラフの描写
##1. 1 グラフにデータをプロットする
* `plt.plot(x軸に対応するデータ, y軸に対応するデータ)`
 を用いることでグラフのx軸とy軸にデータを簡単に対応させてグラフを作成することができます.

その後、

* `plt.show()`
を使うことで画面上に表示されます.

```py:sample1.py
# matplotlib.pyplotをpltとしてimport
import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 2*np.pi)
y = np.sin(x)

# データx,yをグラフにプロット
plt.plot(x,y)
#グラフを表示
plt.show()
```
numpy.linspace（）については[こちらの2.を参考にしてください.](https://qiita.com/techiromen0/items/6e922cd53580facd104d)

| result       | 
|:-----------------|
| ![Figure_1.png](https://qiita-image-store.s3.amazonaws.com/0/240708/c41a8c90-32b6-20e1-1922-8dcd41701450.png)|  


## 1. 2 グラフの一部だけ表示させる

`matplotlib.pyplot`を用いてグラフを作成する際、グラフの表示範囲は自動で設定されます.

`numpy.linspace()やnumpy.arange()`のようにそれぞれに軸に割り当てたデータ（リスト）のmin()及びmax()が表示範囲の最小値と最大値になるため、**データのすべての部分**が自動で可視化されます.

しかし、グラフの一部だけを表示させたい場合もあります.この場合は,

* `matplotlib.pyplot.xlim([最初,最後])`
などでグラフの表示範囲を指定することができます。ここで用いたxlimはx軸の範囲を指定する関数です.

y軸の場合は,

* `plt.ylim([..,..])`


```py;sample2.py
# matplotlib.pyplotをpltとしてimport
import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 100)#最小値０、最大値１００
y = 2*x
plt.title("y = 2*x ")#タイトルを設定下記で説明
# x軸の表示範囲を[0,50]に指定
plt.xlim([0,50])

# データx,yをグラフにプロット、表示
plt.plot(x, y)
plt.show()

```

| x軸の範囲を0~50にした結果       | 
|:-----------------|
| ![Figure_1.png](https://qiita-image-store.s3.amazonaws.com/0/240708/88ef0aa2-71ae-af20-88be-c5206ae1462f.png)|  

x軸の範囲を指定することが出来る.

#2. グラフに装飾する
##2. 1 グラフの要素に名前を設定する
グラフにはなんの関数を表しているかやどういうグラフなのかを記すためにタイトルや軸にラベルをつけます.

matplotlib.pyplotがもつメソッドを用いることで、グラフの様々な要素に名前を設定することができます.
**グラフのタイトル**は、

* `plt.title("タイトル")`、 


**グラフのx軸の名前**は、

*  `plt.xlabel("x軸の名前")`

**グラフのy軸の名前**は、

* `plt.ylabel("y軸の名前")`

で設定することができます.

![Figure_1.png](https://qiita-image-store.s3.amazonaws.com/0/240708/f0203d8f-40d0-92b0-dfdd-0aa4ec4da538.png)

#####:exclamation:：`matplotlib.pyplot as plt`としています.

##2. 2 グラフにグリッドを表示する

グリッド（格子）をグラフに表示させるには、

* **`plt.grid(True)`**


<img width="608" alt="スクリーンショット 2018-04-07 3.00.29.png" src="https://qiita-image-store.s3.amazonaws.com/0/240708/6b055e1c-2cf8-0243-ae05-7c6790e83a31.png">




#####デフォルトでは、グリッドが表示されない


##2. 3 グラフの軸に目盛りを設定する

matplotlibを用いてグラフを作成した際、x軸とy軸に自動で目盛りがつきます.

大抵の場合、それぞれの軸のきりのいい値の箇所で目盛りが付けられますが、データの種類によっては都合が悪いときもあります.例えばy=sin(x)で極値に目盛りを取りたい時など...

そこで、x軸に挿入する目盛りは、

*  **`plt.xticks(目盛りを挿入する位置,挿入する目盛り)`**

で設定することができる.


###1.1 ~ 2.3 までのプログラムをすべて含んだプログラムを動かしてみる.


```py:sample3.py
# matplotlib.pyplotをpltとしてimport
import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 2*np.pi)
y = np.sin(x)
# 1.2グラフの範囲を設定
plt.xlim([0,2*np.pi])
plt.ylim([-1,1])
# 2.1グラフのタイトルを設定
plt.title("y = np.sin(x)")
# 2.1グラフのx軸とy軸に名前を設定
plt.xlabel("x-axis")
plt.ylabel("y-axis")
# 2.2グラフにグリッドを表示
plt.grid(True)
# 2.3グラフのx軸に目盛りを設定
plt.xticks([0, np.pi/2, np.pi, np.pi*3/2, np.pi*2],["0°", "90°", "180°", "270°", "360°"])

# 1.1データx,yをグラフにプロットし、表示
plt.plot(x, y)
plt.show()
```

<img width="627" alt="スクリーンショット 2018-04-07 3.30.13.png" src="https://qiita-image-store.s3.amazonaws.com/0/240708/84d8e50b-a480-2f33-9f5d-ee8a3a6d26b5.png">

---

今回は以上で終わりです.データを扱っていく上でグラフの作成は重要になってきますので、この記事を読んでグラフのタイトルをいれたいな〜とかグラフに目盛りを入れることできるんだ！なんて思ってくれたら嬉しいです:joy:
これから、DeepLearning、データ分析関連の記事も書いていこうと思ってますので応援よろしくお願いします！