【Pandas】matplotlibを使ってグラフを書く方法 ① .no.37

![見出しを追加 (95).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011305/897eea9d-2d48-e7ae-87fc-29f60ec06b4c.png)

こんにちは、まゆみです。

Pandasについての記事をシリーズで書いています。

今回の記事は第37回目になります。

このシリーズも終盤に近付いてきました。

<font color="Red">40記事前後の記事でPandasの全体の概要はつかめる</font>と思うので、是非頑張っていきましょう！

ちなみにPandasの人気に関するグラフを見つけたので、貼っておきますね

![スクリーンショット 2021-04-11 080220.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011305/edf6063c-156d-2481-fc6a-ba7df33f11d6.jpeg)
引用元：[The rise in popularity of Pandas](https://theatlas.com/charts/rJ9sZ5syf)

そして今回の記事のテーマは『グラフを描く』ことになります。

数字のデータをグラフ化すると、その<font color="Red">トレンドが一目で分かったり</font>と大変便利です。
(上のグラフのデータも数字だけで書かれては、急上昇しているトレンドが一目では分からないですよね。)


[matplotlib](https://matplotlib.org/stable/index.html)というライブラリーを使えば、

>折れ線グラフや

>棒グラフや

>円グラフ

を描くことができるようになります。


ではさっそく始めていきますね

#matplotlibのインポート

matplotlibは『マットプロットリブ』と発音します。

matplotlib は慣習的にエイリアスは『plt』です

```
import matplotlib.pyplot as plt
%matplotlib inline
```

『%matplotlib inline』はjupyter notebook 内に結果を表示させるために必要だから書けと言われたのですが、書かなくてもjupyter notebookに表示される時があります。

[こちらのページ](https://www.yutaka-note.com/entry/matplotlib_inline#matplotlib-inline%E3%81%AF%E5%BF%85%E8%A6%81%E3%81%AA%E3%81%84)に<font color="Red">『%matplotlib inline』は書くべきか、書かなくてもいいのか？の詳しい説明</font>が載っていましたので貼っておきますね。

また、matplotlibをうまくインポートできない人は、Anacondaにmatplotlibをインストールしていますか？

「インストールしていないかも」っていう人は[こちらを](https://qiita.com/Mayumi_Pythonista/items/ff0d7239d23446757609#pandasjupyter-notebook-matplotlib-%E3%81%AA%E3%81%A9%E5%BF%85%E8%A6%81%E3%81%AA%E3%82%82%E3%81%AE%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B)参考にして、インストールしてから再度インポートしてみてくださいね。

#今回使うデータ

今回は、株価情報をグラフ化したいので、『pandas_datareader』を使ってyahoo!finance から情報を取ってきます。
(株価情報を取ってくる方法は[こちらの記事](https://qiita.com/Mayumi_Pythonista/items/d742a144e20d473ed3e3)に詳しく書いています。)


今回は、2020/4/9～2021/4/9までのAmazonの株価情報を取り出しました。

![スクリーンショット 2021-04-11 091300.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011305/ae1cc8b1-98c1-664c-4cac-11d653450f99.jpeg)


#グラフを描く

ではmatplotlib のplot()メソッドを使うとどのようなグラフが描けるか見てみましょう

![スクリーンショット 2021-04-11 091518.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011305/d88a47df-d488-bec2-2253-f1e2742161be.jpeg)

DataFrameに.plot()メソッドを使うと、全ての数字の値(整数、少数)でできたコラムを使ったグラフが作られます。

今回のデータですと、6つのコラムの値は全て数字なので全てのコラムの値からグラフが作られます。

ただ、<font color="Red">Volumeの値が他の値に比べてとびぬけて大きいので、表示されているけど見えていない状態</font>です。

また、DataFrameのインデックスはx軸に、DataFrameのコラムはy軸でグラフが作られます。


![見出しを追加 (93).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011305/a0be34da-f9b2-25af-de94-ec69119f7d76.png)

ではコラムのなかの『Close』のみをy軸にとってグラフを作ってみましょう。<font color="Red">.plot()メソッドのパラメーターyの引数に使いたいコラムを引数として渡します。</font>

![スクリーンショット 2021-04-11 095720.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011305/5090285f-4adf-47c5-a445-9cc8dcf1a83b.jpeg)

もしくは、DataFrameから、グラフを作りたいコラムのみを取り出した上でグラフを作っても同じ結果になります。

![スクリーンショット 2021-04-11 104218.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011305/6aa93b07-e07e-a6ef-c145-46d81e91c878.jpeg)


##2つ以上のコラムを使う

先ほどのように、Volumeが他のコラムの値に比べてとびぬけて大きい値である時以外は、2つ以上のコラムの値を同時にグラフに表示させることもできます。

<font color="Red">使いたいコラムをリスト</font>にします。

![スクリーンショット 2021-04-11 100255.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011305/4c90a0e3-20de-c328-2eeb-b031ef5e9517.jpeg)

最初に使いたいコラムのみを抜き出してグラフを作るか、パラメーターy
の値を使いたいコラム名にするかどちらの方法にせよ、コラム名をリスト型にして渡します。

##グラフの色を変える

![見出しを追加 (94).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011305/98a5da05-522e-a6b5-67eb-232cc26a9b10.png)

```
plt.style.available
```

と書くと、色々なテーマのテンプレートが詰まったリストを返してくれます。

![スクリーンショット 2021-04-11 102503.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011305/d0e77015-a0bf-cf33-f33b-c2366d1cddf6.jpeg)

ではこのテーマを使ってグラフの色を変えてみましょう

```
plt.style.use("使いたいテーマ")
```
と書いた後、.plot()メソッドを使ってグラフを描くと色々なテーマが楽しめます。

![スクリーンショット 2021-04-11 102651.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011305/3746f9cd-5201-fe63-28f7-024ac8f13c98.jpeg)

![スクリーンショット 2021-04-11 102705.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011305/28877ab3-46bf-6e63-5cdd-785ca85d8e8b.jpeg)


![スクリーンショット 2021-04-11 102719.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011305/e27a36dc-3451-f382-22d6-920016e43b9f.jpeg)

#まとめ
今回の記事では、matplotlibというライブラリーを使って、折れ線グラフを描く方法を書かせていただきました。

次回の記事では、棒グラフや円チャートを描く方法を書いていこうと思います。