【コピペで使えるPython】matplotlibを使ってグラフを描画する

開発のTips

2022年になりました

あけましておめでとうございます.
あっという間に一年が過ぎ,2022年になりました.ブログの更新があまりできていないのですが,今年もぼちぼち更新していこうと思います.
最近,いろんなものを購入する機会があって,レビューをしていきたいのですがなんかネタを書こうと思ったときに写真が残っていないと書きにくいですね.
なので,写真がいらないプログラミングに関する記事を書こうと思います.

matplotlib

 pythonの得意分野の一つにデータ分析があります.ちょっとしたデータから大量のデータまで...さまざまなデータを数値のまま見てもわけがわからないのですが,グラフに表して可視化すると,「差がある」とか「どのタイミングで値に大きな変化があるか」などが一目瞭然となります.

 pythonでグラフといえばmatplotlibというモジュールが有名です.matplotlibを使えば,数行のコードでキレイなグラフが描け,また多様なオプションをうまく使うことで所望のグラフを簡単に描くことができます.この記事ではmatplotlibのHello worldを体験したいと思います.

matplotlibのインポートと描画

 今回はあらかじめmatplotlibが使える環境が用意されていることを前提にするので,もしmatplotlobがインポートできない場合は,インストールから始めてください.

 早速サンプルコードを書いてみます

import matplotlib.pyplot as plt

# 描画するデータ
month = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] # 月のデータ(1月から12月まで)
temp = [9, 10, 14, 20, 25, 28, 32, 33, 29, 23, 17, 11] # 毎月の平均気温データ(deg)


plt.plot(month, temp) # グラフの描画
plt.show() # グラフの表示

上のようなグラフが描画されます.これは京都府のとある一年の月ごとの平均気温を描画しています.たった5行でそれなりのグラフを書くことができるようになりました.
このグラフを見て納得がいかない人は,普段からよくグラフを見ている人なのではないでしょうか?
個人的には「横軸の値が毎月ではなく隔月になっている」,「縦軸,横軸に単位や要素名が書かれていない」など不満が残ります.次は自分が納得いくようにオプションを追加してみたいと思います.

オプションの追加

#coding: UTF-8
import matplotlib.pyplot as plt

month = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
temp = [9, 10, 14, 20, 25, 28, 32, 33, 29, 23, 17, 11]

plt.plot(month, temp, label="Kyoto") # label=""を設定しておくと凡例が追加できる
plt.xlabel("month") # 横軸のラベル
plt.ylabel("temperature (deg)") # 縦軸のラベル
plt.xticks(month) # 設定した横軸の値表示
plt.grid() # グリッドの表示
plt.legend() # 凡例の表示
plt.show() # グラフの表示

先ほどより見栄えの良いグラフになったと思います.他にも用途に合わせて必要なオプションが必要な場合は「plt ○○」と検索をかけるとヒットしやすいです.

最後のおまけに,さらに多くの都市の気温データをプロットしたグラフを例として載せておきます.凡例の位置がいまいちなような気がしますが,載せられる場所も限られているのでこんな感じかとも思います.もちろん凡例の位置を自由に変更することもできます.

最後に...

 今回プログラミングの記事を書こうと思ったものの何について書こうか迷いました.先日ちょうど子供たちにプログラミングを教える機会があったため,結局そのとき題材にしていたグラフ描画についてを書くことにしました.グラフ描画については自分でもよく使うので,簡単にまとめておいてよかったなと思います.
 ところで,先日の子供たちにプログラミングを教える機会に「これまでにどんな形式でもいいのでプログラミングをやった人はいますか?」というアンケートをしたところ,受講生15人程度の子供(小学5年生~高校1年生)たちは全員プログラミングの経験があるとのことでした.JavaScriptやArduino言語など本格的なものからスクラッチやレゴプログラミングなど学校教材として扱われるものまで幅広いものを扱っていました.
 今回の最後の例では日本各地の気象データをプロットしてみました.子供たちにグラフプロットをさせるのに使いやすいデータは何かと考えた時に気象データがよいのでは?と思ったわけです.
「気象庁 csv」などと検索すると気象庁が発表しているオープンデータをダウンロードすることができます.さまざまな地点の多種にわたる項目のデータをダウンロードすることができるので,必要な人はぜひアクセスしてみてください.最後のグラフはダウンロードしてきたデータを処理しやすいように加工して,pythonコードから呼び出し大量のデータを扱えるようにしています.またこれについての記事を書いてみてもいいかなと思います.

それでは...

タイトルとURLをコピーしました