こんにちは、まゆみです。
Pandasについての記事をシリーズで書いています。
今回の記事は第37回目になります。
このシリーズも終盤に近付いてきました。
40記事前後の記事でPandasの全体の概要はつかめると思うので、是非頑張っていきましょう!
ちなみにPandasの人気に関するグラフを見つけたので、貼っておきますね
引用元:The rise in popularity of Pandas
そして今回の記事のテーマは『グラフを描く』ことになります。
数字のデータをグラフ化すると、そのトレンドが一目で分かったりと大変便利です。
(上のグラフのデータも数字だけで書かれては、急上昇しているトレンドが一目では分からないですよね。)
matplotlibというライブラリーを使えば、
折れ線グラフや
棒グラフや
円グラフ
を描くことができるようになります。
ではさっそく始めていきますね
#matplotlibのインポート
matplotlibは『マットプロットリブ』と発音します。
matplotlib は慣習的にエイリアスは『plt』です
import matplotlib.pyplot as plt
%matplotlib inline
『%matplotlib inline』はjupyter notebook 内に結果を表示させるために必要だから書けと言われたのですが、書かなくてもjupyter notebookに表示される時があります。
こちらのページに『%matplotlib inline』は書くべきか、書かなくてもいいのか?の詳しい説明が載っていましたので貼っておきますね。
また、matplotlibをうまくインポートできない人は、Anacondaにmatplotlibをインストールしていますか?
「インストールしていないかも」っていう人はこちらを参考にして、インストールしてから再度インポートしてみてくださいね。
#今回使うデータ
今回は、株価情報をグラフ化したいので、『pandas_datareader』を使ってyahoo!finance から情報を取ってきます。
(株価情報を取ってくる方法はこちらの記事に詳しく書いています。)
今回は、2020/4/9~2021/4/9までのAmazonの株価情報を取り出しました。
#グラフを描く
ではmatplotlib のplot()メソッドを使うとどのようなグラフが描けるか見てみましょう
DataFrameに.plot()メソッドを使うと、全ての数字の値(整数、少数)でできたコラムを使ったグラフが作られます。
今回のデータですと、6つのコラムの値は全て数字なので全てのコラムの値からグラフが作られます。
ただ、Volumeの値が他の値に比べてとびぬけて大きいので、表示されているけど見えていない状態です。
また、DataFrameのインデックスはx軸に、DataFrameのコラムはy軸でグラフが作られます。
ではコラムのなかの『Close』のみをy軸にとってグラフを作ってみましょう。.plot()メソッドのパラメーターyの引数に使いたいコラムを引数として渡します。
もしくは、DataFrameから、グラフを作りたいコラムのみを取り出した上でグラフを作っても同じ結果になります。
##2つ以上のコラムを使う
先ほどのように、Volumeが他のコラムの値に比べてとびぬけて大きい値である時以外は、2つ以上のコラムの値を同時にグラフに表示させることもできます。
使いたいコラムをリストにします。
最初に使いたいコラムのみを抜き出してグラフを作るか、パラメーターy
の値を使いたいコラム名にするかどちらの方法にせよ、コラム名をリスト型にして渡します。
##グラフの色を変える
plt.style.available
と書くと、色々なテーマのテンプレートが詰まったリストを返してくれます。
ではこのテーマを使ってグラフの色を変えてみましょう
plt.style.use("使いたいテーマ")
と書いた後、.plot()メソッドを使ってグラフを描くと色々なテーマが楽しめます。
#まとめ
今回の記事では、matplotlibというライブラリーを使って、折れ線グラフを描く方法を書かせていただきました。
次回の記事では、棒グラフや円チャートを描く方法を書いていこうと思います。