Matplotlibでグラフ描いてみた

結構前に一通り勉強したMatplotlibでたくさんグラフを描けるようになったので、栃木県のコロナウイルスの感染者数のグラフを2種類作ってみました。

 

1.折れ線グラフ

栃木県内の4月の日別感染者数(4/1〜4/30)のグラフを2種類描写していきます。

 折れ線グラフを作るにはmatplotlibのplotメソッドを使います。文字通り点を打っていくわけです。説明の前にコードを貼ってしまいます。

f:id:kaitadayo:20200716222611p:plain

折れ線グラフ作成コード

まず、matplotlibをインポートしています。さらにmatplotlib.styleをインポートして「ggplot」というグラフのスタイルを指定しています。まあこれはwordで明朝体だとかゴシック体とか文字の書式を指定している様なものです。

次からがmatplotlib特有のものなのですが、figとaxという変数を指定する必要があります。グラフ自体はaxの方に描いていくわけなのですが、だったら変数二つもいらなくね?って僕も思いました笑

簡単にいうとfigは台紙で、axは付箋紙みたいなものです。figという台紙の上に、グラフを書いたaxという付箋紙を貼っていくわけですね。こうすることの利点は複数のグラフをまとめられる点にあります。例えば、ax1に折れ線グラフを、ax2に棒グラフを描いて、それを一つのfig(台紙)に貼りつけてしまえば、一枚の紙で二つのグラフが見れるよねってことです。

次はx,yという変数に要素を指定していきます。通常のグラフのイメージ通り、横軸の要素がx、縦軸の要素がyです。ここではxに日付(1〜30),yに感染者数をそれぞれセットしてあります。今回は分かりやすいように(for構文の説明を省くために)、普通に1から30まで打ちました。笑

データが用意できたら後は、plotメソッドをaxに適用して折れ線グラフを描いていきます。

これを実行した結果下のようなグラフが出来上がります。

f:id:kaitadayo:20200716224456p:plain

完成した折れ線グラフ

んーーー、見にくいよねぶっちゃけ。笑

折れ線グラフは向かないとは分かっていたけど、一応やってみました。

次は本命、棒グラフの登場です。

2.棒グラフ

今回も先にコードを貼っちゃいましょう。

f:id:kaitadayo:20200716225540p:plain

棒グラフコード1

fig,axの話は前回と同じです。要素も同じ。変わったのはplotメソッドでは無くて、barメソッドをaxに適用している点だけです。bar、文字通り「棒」ですね。

できた棒グラフがこちらです。

f:id:kaitadayo:20200716230048p:plain

棒グラフ1

折れ線グラフと比べると大分見やすくなりましたが、まだこのグラフには重要なものが足りていない。それは横軸、縦軸が何を表しているか、このグラフはなんのグラフかを示すことです。グラフにはこれがかなり重要で、僕は大学の実験でこれらを疎かにし、最低評価をもらった事があります。(嘘)

グラフにこれらを表現するには以下のコードを打ちます。

f:id:kaitadayo:20200716231228p:plain

棒グラフコード2

setメソッドを使って、横軸、縦軸、グラフ自体に名前を付けます。

setの次のアンダーバーの後に名前を付けたい場所を指定して、次のカッコの中に付けたい名前を指定します。これを実行すると下のようになります。

f:id:kaitadayo:20200716231742p:plain

棒グラフ2

これまでで一番良いグラフですね。ちなみにグラフのタイトルなどを英語にしているのは、日本語だと文字化けしてしまうからです。文字化けしないようにする方法もあるみたいですが、今回はこれで勘弁。(グラフのタイトル…4月の日別コロナ感染者数、縦軸…感染者数、横軸…日付という意味です)

3.まとめ

まだまだグラフをマスターしたとか言えるレベルじゃないけど、自分のパソコンの画面にグラフが表示されるだけでカッコええって感じです。プログラミングしている自分に酔わせてくれているので、グラフは十分仕事しているよね。次は円グラフをやりたいです。さよなら