はじめに
matplotlibで横軸が日付の棒グラフを作成する方法について説明する。
データとしてWebブラウザChromeの恐竜ゲームのスコアを用いる。
Chromeでchrome://dinoにアクセスすればオフラインでも遊べる。
データ
Date | Score |
2018-09-23 | 6418 |
2018-09-24 | 16065 |
2018-09-25 | 5201 |
2018-09-26 | 8995 |
2018-09-27 | 22515 |
2018-09-28 | 8436 |
2018-09-29 | 13638 |
コード
コードをダウンロード(.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”とすれば、表示形式は “月/日 時:分” となる。
コメント