Python PR

PythonでグラフのGifアニメーションをつくる -データ分析のための可視化-

PythonプログラミングでGIFアニメーションをつくる
記事内に商品プロモーションを含む場合があります

こんにちは。

現役エンジニアの”はやぶさ”@Cpp_Learningです。最近ダイエットしてます。

ダイエット期間中の体重データを可視化することでモチベーションをキープしてます💪

本記事ではPythonプログラミングによるグラフのGifアニメーション作成について紹介します。

データ分析のための可視化デザインについても簡単に紹介します

リングフィットアドベンチャーでダイエット

冒頭に書いた通り、最近ダイエットしてます。色々なことにトライしましたが、最も効果的だと感じたのが、リングフィットアドベンチャーで楽しく運動することです。

正直ゲームだと思って甘くみてました。ゲーム開始から20分で大量の汗が!運動不足もあってか最初の三日間は全身筋肉痛でした(笑)

ボス戦でもうダメだ―ってときには、相棒からの「まだやれる!」の声援のおかげで、最後まで筋トレをやりきれました!

『キツイ⇒「まだやれる!」⇒頑張る』のスパイラル~

ダイエットに関する前知識も教えてくれるし、「スクワット200回達成です♪」など、事あるごとに褒めてくれるのが嬉しくて、ついつい頑張ってしまいます。

はやぶさ
はやぶさ
リングフィットアドベンチャーは室内で楽しく筋トレできる素晴らしいゲームでした!

実践!Pythonプログラミングで体重データの可視化

リングフィットアドベンチャーが、その日の運動時間や消費カロリーを教えてくれますが、さすがに体重管理まではしてくれないので、自分で計測して記録しています。

その記録を可視化することで「ダイエットをはじめて何日後に痩せたか?」などを把握しながら、ダイエットを楽しんでいます。

以降からPythonプログラミングによるデータの可視化についてソースコードを付きで紹介します。

インストール

PythonでグラフのGifアニメーションをつくる方法はいくつか存在しますが、gif|GitHubを活用するのがオススメです。

以下のコマンドでインストールできます。

pip install gif

以降からコード書いていきます。

Google Colabで動作確認しました。

Import

まずはimportから

データフレーム

今回は各データを手打ちします。

リングフィットによるダイエット記録

上のデータが今回の可視化対象です。

簡単なデータ可視化

簡単な可視化ならコード1行で実現できます。

Pythonによるデータ可視化

ただ上図だと大事なことが伝わらないので、工夫していきます。

丁寧なデータ可視化

各種設定して、一目で分かるデータ可視化を目指します。

Pythonによるデータ可視化

各軸の説明やタイトルをつけることで、何のデータなのか明確になりました。ここから、もう少し工夫します。

目的・目標が分かるデータ可視化

今回はダイエット期間中のデータなので、目標の体重値を追加してあげます。

Pythonによるデータ可視化

この一工夫で「あと何キロ痩せれば良いか」が明示できます。

このグラフを俯瞰してみると、ダイエット4日目と10日目に谷が二つあることが分かります。つまりリバウンドしてますね…

リバウンドの原因については、グラフのGifアニメーションを作りながら説明します。

スポンサーリンク

実践!Pythonプログラミングでグラフのアニメーションをつくる

gif|GitHubによるGifアニメーション作成は、以下の3ステップで実現できます。

  1. Gifアニメーション用のPlot関数を作成
  2. for文で1フレームつずつ描画
  3. 全フレームをGifで保存

順番にコード書いていきます。

グラフのGifアニメーション作成用の関数

最初に今まで書いたデータ可視化のコードを少し改良して、関数化します。

※今まで書いたコードと、どこが違うか見比べてみて下さい

アニメーション作成とGifで保存

以下のコードでグラフのアニメーションを作成して、Gifで保存できます。

※保存先のpathは適当に変更してください。

保存した“weight-log.gif”を再生したものが上図です(冒頭で見せたものと同じです)

アニメーションにすることで「何日目までは順調に体重が落ちてる」・「この日を境にリバウンドしてる」などの時系列をより意識できますね。

はやぶさ
はやぶさ
それにアニメーションは見ていて楽しいですね

なぜリバウンドしたのかの原因もアニメーション見れば分かりますね。少し怠けると直ぐに体重に変化がでますね…継続は力なり💪

おわりに

データ可視化により、様々な情報を整理することができました。

丁寧なデータ可視化は自分だけでなく相手にデータを知ってもらうときの有効な手段になります。

少し大変かもしれませんが、「何が重要か?」・「どこをアピールしたいか?」などを意識してデータを可視化できると良いと思います。

はやぶさ
はやぶさ
ぜひ丁寧なデータ可視化にチャレンジしてみて下さいね

【おまけ】ダイエットとプログラミング

フクロウの”くるるちゃん”と一緒に日々ダイエットに励んでいます💪

ダイエットについてですが、リングフィットアドベンチャー以外にも、いくつかトライしていることがあるので簡単に紹介します。

21時までに夕食を済ませ、メインの飲み物をプーアル茶にしました。

あとダイエットという身近な題材にプログラミンが活用できることを紹介しました。

プログラミンで何ができるの?なんとなく難しそう…

と感じている人たちのプログラミングに対するハードルを少しでも下げれたら嬉しく思います。

プログラミング言語いくつかありますが、Pythonプログラミングに挑戦したい人は「ゼロから学ぶPythonプログラミング」という本がオススメです。

ゼロから学ぶPythonプログラミング
『ゼロから学ぶPythonプログラミング』の感想文こんにちは。現役エンジニアの”はやぶさ”@Cpp_Learningです。 今回は『ゼロから学ぶPythonプログラミング』という本...

感想文の記事も書いてるので、ご参考までに。

PICK UP BOOKS

  • 数理モデル入門
    数理モデル
  • Jetoson Nano 超入門
    Jetoson Nano
  • 図解速習DEEP LEARNING
    DEEP LEARNING
  • Pythonによる因果分析
    Python