[matplotlib] 1.matplotlibで横軸日付の棒グラフ

matplotlib

はじめに

matplotlibで横軸が日付の棒グラフを作成する方法について説明する。

データとしてWebブラウザChromeの恐竜ゲームのスコアを用いる。
Chromechrome://dinoにアクセスすればオフラインでも遊べる。

データ

DateScore
2018-09-236418
2018-09-2416065
2018-09-255201
2018-09-268995
2018-09-2722515
2018-09-288436
2018-09-2913638

コード

コードをダウンロード(.pyファイル)コードをダウンロード(.pyファイル)

解説

モジュールのインポート

日付を目盛りのラベルとして表示し、調整するには、matplotlib.datesが必要となる。

データの読み込み

pd.read_html(url1,header=0)[0]でデータフレームを生成する。
urlはこのページとなっており、pd.read_htmlでwebページ上に存在するTableを取得することができる。
header=0により一番上の行をヘッダーとしている。read_hrmlがTableのリストを返すので[0]とすることでDataFrameを取り出している。

データのnp.arrayへの変換

Dateの列を.valuesによりnp.arrayに変換し、さらにastype(np.datetime64)でdatetime64形式に型変換する。

同様にScoreの列をnp.arrayに変換する。

グラフの表示

figure は図全体、ax はその内部の座標軸を意味している。
figsize =(6,4) は横6インチ、縦4インチの図を作成することである。(1インチ=2.54 cm)
subplot(行数, 列数, プロット番号)なので、111とすると、1行、1列の1個目に図を作成することになる。
ax.bar(Date,Score,color = ‘pink’,edgecolor=”black”)で横軸にDate、縦軸にScoreを適用した棒グラフを作成する。colorで棒の色をピンクにし、棒のフチの色をedgecolorで黒にしている。

X軸の設定

mdatesのDateFormatter()で”%m:%d”といれることで、表示形式は “月/日” となる。
“%m/%d %H:%M”とすれば、表示形式は “月/日 時:分” となる。

参考:

matplotlib.pyplot.bar — Matplotlib 3.3.2 documentation

コメント