見出し画像

便利ライブラリ matplotlib① 基本的な使い方

以前の投稿でAltairというグラフ化のためのライブラリをご紹介しました。他にもグラフ化を行うライブラリはいくつかあり、代表的なmatplotlibについてまとめていきたいと思います。


準備

ローカル環境で行う場合は、作業ディレクトリを作成し、他のライブラリ同様にpipでインストールすることが出来ます(ターミナルで「pip install matplotlib」)。今回は挙動を確認しながら進めていきたいので、pyファイルではなくノートブック形式(Google colabのようにセル単位で実行する形式)のipynbファイルを作成します。「適当なファイル名.ipynb」でファイルを作成します。
作業ディレクトリに関しては、前回の投稿(VScadeの使い方)を参照してください。

ノートブック形式のファイルを扱うためには、VScadeの拡張機能「Jupyter」が必要になります。設定については過去の投稿(Pythonの開発環境を構築しよう!)を参照してください。

Google colabで行う場合も、pipでライブラリをインストールしますが、先頭に「!」を付けることをお忘れなく。

最初に必要なライブラリをimportします。Excelデータを使用して、グラフを作成していくので、pandasも一緒にimportしておきます。

import matplotlib.pyplot as plt
import pandas as pd

前回の投稿(VScadeの使い方)で、サンプルとして「人口10万人当たり新規陽性者数.csv」ファイルから都道府県ごとに分けてExcelファイルを保存したと思います。その中から「Aichi.xlsx」を使用するので、分かりやすいように作業ディレクトリにコピーしておいてください。

データの確認とデータの整形

ExcelデータをDataFrameとして読み込み、dfの中身を確認してみましょう。

df = pd.read_excel('Aichi.xlsx')
df.head()

2列のデータが入っていることが確認できました。このdfには2023/5/8までの1209件のデータが入っているので、分かりやすく1ヶ月分のデータ(2021年1月分)を取り出して、グラフ化していきます。

df['Date'] = pd.to_datetime(df['Date'])
df = df.query("'2021-01-01' <= Date < '2021-02-01'")
df.head()

これで、2021年1月分のデータを準備することが出来ました。

matplotlibの基本的な使い方

イメージ

Altairの時と同様に公式ドキュメントにExamplesもあるので、それを見ながら書いていけば良いのですが、前提を知っておくと分かりやすかもしれません。

matplotlibでは、Altairと異なりいきなり図が作られるわけではありません。まず、Figureと呼ばれる台紙を準備します。その台紙の上に軸を用意して、データを載せていく感じをイメージすると分かりやすいかもしれません。オプションで、凡例や補助線を入れたり、色や線の種類を変える事ができます。それぞれの設定がどのパーツに関連しているか理解できると上手く使いこなせます。

公式ドキュメントより引用

また、台紙部分は分割することもでき、分割したそれぞれの軸に対して設定を行うことが出来ます。

グラフの作成

まずは凝った設定は何もせず、素のグラフを作成してみます。先程準備したdfのDateをx軸、陽性者数をy軸として陽性者数の推移をグラフにしてみましょう。変数xとyにDate列、Aichi列のデータを代入します。

x = df['Date']
y = df['Aichi']

あとは、以下のようにプロットを作成します。

fig, ax = plt.subplots()  # 台紙と軸の準備
ax.plot(x, y)  # データを渡す
plt.show()

一応グラフ化できました。しかし、これだとx軸の日付が潰れてしまって分かりにくいですし、何だか味気ないですね。次回以降の投稿で、より見やすいグラフへブラッシュアップしていきたいと思います。


個人的にはAltairが好きですが、matplotlibの方がExcelでグラフを作る感覚に似ていて分かりやすいのかもしれません。

この記事が気に入ったらサポートをしてみませんか?