乳幼児のミルク量をヒートマップで見える化する
@ Tanao · Friday, Mar 13, 2020 · 1 minute read · Update at Mar 17, 2020

生後3か月になった娘の、今までに飲んだミルク量を可視化しました。

可視化の結果

横軸が日にち、縦軸が時間、色の濃さがミルクを飲んだ量(ml)です。

12月(生後0ヶ月)

1月(生後1ヶ月)

2月(生後2ヶ月)

3月(生後3ヶ月)

使用ツールと手順

SlackとIFTTT

これまでのミルクを与えた量、時間に関するデータを用意します。

我が家では、Slackでログを残していたので、それを使用します。

以下、ログの残し方に関する説明です。(遡って記録するのではなく、ミルクを飲むタイミングでログを記録するやり方です。)

Slackで、ミルクを 「いつ」「どのくらいの量」 与えたかを記録します。

毎回Slackの画面を開くのは大変なので、 スマホのホーム画面に「ミルク開始ボタン」を設置 しました。

(Slackのアイコンが4つ並んでいるうちの、左から2つ目が「ミルク開始ボタン」)

IFTTTでボタンとSlackを連携しており、このボタンを押すと Slackの特定のチャンネルにメッセージが送られます。

この投稿時間(ボタンを押したタイミング)を、 ミルクをあげた時間 として扱います。

ミルク量 は、Slackで投稿されたメッセージのreplyに数値を手動で入力することとします。

Google Drive

我が家では、Slackの投稿(ログ)をGoogle Driveのスプレッドシートにバックアップしています。

※バックアップ方法はこちらの方の記事をご参照ください

Slackの投稿の月別にファイルがあり、そのファイル内でchannel別にシートが用意されています。

上で紹介したメッセージの情報 (いつどのくらいの量のミルクをあげたか) がスプレッドシート上に記録されているので、 該当するchannelのシートをダウンロードします。

(ここは特に自動化しておらず、手動でポチポチとダウンロードします)

ここではtsv形式でダウンロードしています。 この後の手順でパースができるのであれば、csvやその他の形式でもよいです。

Python (matplotlib, pandas, seabornモジュール)

Pythonで以下の処理をしました。

  • ログのパース(データの集計)
  • ヒートマップの描画、画像出力

ログのパース部分ですが、夫が元々コーディング済みだったものをありがたく使用しました。

現時点では、 15分毎にデータをまとめています。 後から30分や1時間刻みに変更しやすいようにコーディングしました。

ヒートマップの描画は、seabornモジュールを使用しました。 カラーマップ(cmap)Wistiaを使用しています。

seabornの使用時に、matplotlibやpandasを併用しています。

補足

以下、補足です。

  • 生後5日目(退院後)から現在までが可視化対象です
  • 多少の抜け漏れ、記録タイミングのズレがあります
  • カラーバーの上限値は、そのグラフ(その月)内の最大値です

コメント

ヒートマップを作った動機

もともと授乳表代わりにSlackでミルク量を記録していました。

「ミルクの量や時間帯を振り返ることで、規則性がみえたらおもしろいな」 と考え、 ヒートマップの描画をしてみました。

感想

やってみて、いくつか気づきがありました。

  • 1月後半(生後1か月後半)から夜中のミルクが減っている
    • 恐らくこの時期から、夜中は授乳のみでも大丈夫になった
    • また、夜通し起きない日もでてきた
  • 最近は、だいたい12時、15時、19時、22時に規則よくミルクを飲めている
    • 飲みムラがあるので、少量を高頻度で飲ませる作戦を最近実施している
    • 少量ずつ飲ませるので、ミルクを作りすぎて無駄にすることが少ない

まぁ既存の授乳表アプリでも同じような気づきは得られそうですね(苦笑)

記録方法の単純さと、レイアウトを好きに変更できる、というのが利点かと思います。

今回はヒートマップだけ描きましたが、 せっかく自前でデータ集計しているので、その他の可視化についても可能性は広がるかと思います。

完全に余談ですが、私が暇なときにコーディングすることで、在宅ワーク中の夫の邪魔をする頻度が減りました。 (いつもは夫に話しかけたり、近くでテレビをみたりしていた)

今後

子供の世話をしながら1,2日で作ったので、β版ともいえないような段階です。

今後やりたいことは以下の通りです。 来月から復職し忙しくなるため全部対応することは難しそう(ひとつもやらないかも?)ですが、 とりあえず列挙しておきます。

  • 授乳回数を併せてプロット
    • ミルク量(数値)と授乳有無(0 or 1)をひとつのグラフで表現する方法が分からない…
  • トイレ(大、小) を併せてプロット
    • 同上
  • (離乳食が始まったら)食事タイミングを併せてプロット
    • 同上
  • 日ごとのミルク量を集計して併せて可視化
    • サブプロット増やしてbar(棒グラフ)でいけそう
  • ログの修正をできるような手順に変更
    • 保育園始まったらリアルタイムでミルクの記録できない…
    • 既存の授乳表アプリの記録機能と組み合わせたほうが効率よいかも
  • 複数の月のデータを1つの画像として出力
    • レイアウトこだわらなければすぐできそう
  • 簡単な統計処理
    • これまで飲んだミルクの総量とか1日の平均量・分散とかを算出してもおもしろそう
  • ログデータのダウンロードとプロットの実行を自動化
    • 労力対効果が見込めなさそう(たまにプロットを確認するだけなら手動のほうが楽そう)

※ 2020/3/17追記 続編の記事はこちら→  授乳回数とミルク量を見える化する

Tanao's blog
好きなものをゆるくつづる

gadget heroku hugo ifttt it netlify python raspberrypi rss service slack vim アウトドア ハンドメイド 写真 家具家電 日常 生活術 育児

© 2020 Blog by Tanao

Powered by Hugo with theme Dream.

プライバシーポリシー

Google Analytics

当ブログではアクセス解析ツールとしてGoogle Analyticsを使用しています。 Google AnalyticsではCookieを使用したデータ収集をしています。 情報の扱いやCookieの消去方法について、詳しくはこちらをご覧ください。

免責事項

当ブログにはなるべく正しい情報を掲載するように努めていますが、 意図せず古い情報や誤情報を掲載する可能性もあります。 当ブログに掲載した情報やリンク先によって生じた損失、損害等について 一切の責任を負いかねますので、ご了承ください。

About me

  • tanao
    • アラサー会社員(育休中)
    • 情報処理系のお仕事
    • 夫と娘(0歳)の3人暮らし

本ブログでは気の向くままに好きなことをつづります。

  • 技術・ガジェット
  • 育児
  • 生活術
  • アウトドア
  • 写真
  • ハンドメイド・工作
  • etc.

以下のブログランキングサイトに登録しています。

ブログランキング・にほんブログ村へ

Social Links