【ITニュース解説】Visualizing My Daily Habits With Python and Matplotlib
2025年09月05日に「Medium」が公開したITニュース「Visualizing My Daily Habits With Python and Matplotlib」について初心者にもわかりやすいように丁寧に解説しています。
ITニュース概要
PythonとMatplotlibで日々の行動記録をグラフに可視化。自分の習慣を客観的に分析し、生活改善に繋げた方法を紹介する。プログラミングでデータから洞察を得る具体的な実例だ。
ITニュース解説
このニュース記事は、私たちが日頃意識せずに行っている「習慣」を、データを使って客観的に見つめ直し、より良いものに変えていく方法を紹介している。具体的には、プログラミング言語のPythonとグラフ描画ライブラリのMatplotlibを使い、日々の活動ログを視覚的に表現することで、自分のルーティンにおける課題を発見し、実際に改善につなげた事例だ。
システムエンジニアを目指す皆さんにとって、この事例はプログラミングスキルが単にプログラムを作るだけでなく、現実世界の問題解決にどう役立つかを示す良い例となるだろう。私たちは日々の生活の中で、どれくらいの時間を勉強に使い、どれくらいの時間を休憩に費やし、どれくらいの時間集中しているのか、正確には把握できていないことが多い。しかし、それらの活動をデータとして記録し、可視化することで、これまで見えなかった自分の行動パターンや無駄を発見し、効率的な時間の使い方や生産性の向上につなげることが可能になる。
まず、この取り組みの第一歩は「データの収集」だ。記事の筆者は、Notionというツールを使って日々の習慣や活動内容を記録していた。例えば、何時に起きて、いつからいつまでプログラミング学習をしたか、何時間睡眠をとったか、といった情報だ。このように、日々の活動を継続的に記録することで、分析の材料となる「生データ」が蓄積される。これはシステムエンジニアの仕事でいうと、Webサイトのアクセスログやシステムの稼働状況ログなどを収集するのと同じような考え方だ。データはExcelやスプレッドシートのような表形式で保存され、それをCSV(Comma Separated Values)という形式でエクスポートする。CSVは、データをカンマで区切ってテキストファイルとして保存する形式で、多くのプログラムやツールで簡単に読み書きできる汎用的なフォーマットだ。
次に、このCSV形式のデータを「Python」を使って読み込み、処理する段階に入る。Pythonは非常に読みやすく書きやすいプログラミング言語で、データ分析の分野ではデファクトスタンダード(事実上の標準)となっている。Pythonには「pandas」という強力なライブラリがあり、これを使うとCSVファイルのような表形式のデータを効率的に扱うことができる。具体的には、CSVファイルを読み込んでデータを表のような形(データフレームと呼ぶ)でメモリ上に展開し、特定の日付範囲のデータを取り出したり、活動時間ごとの合計を計算したり、といった前処理や集計を行う。このデータ前処理は非常に重要で、生データには欠損値(データがない部分)があったり、形式が揃っていなかったりすることがよくあるため、分析しやすい形に整える作業が欠かせない。例えば、日付の形式を統一したり、時間データを数値に変換したりする作業が含まれる。
データが分析しやすい形に整ったら、いよいよ「可視化」のステップだ。ここで登場するのが「Matplotlib」というPythonのライブラリだ。Matplotlibは、棒グラフ、折れ線グラフ、散布図、ヒートマップなど、様々な種類のグラフをプログラミングで作成できるツールだ。記事の筆者は、おそらく Matplotlibを使って、以下のような情報を視覚化していると考えられる。
例えば、日ごとの活動時間の推移だ。毎日何時間プログラミングをしたか、何時間読書をしたかなどを折れ線グラフで表示し、習慣が定着しているか、ムラがあるかなどを確認する。また、時間帯ごとの活動パターンも可視化できる。1日24時間の中で、どの時間帯にどんな活動を集中して行っているかを棒グラフやヒートマップで示すことで、「朝は集中できるが、午後はSNSを見がちだ」といった傾向を発見できる。さらに、睡眠時間と生産性の関係を探ることも可能だ。睡眠時間と、その日の集中度や生産性との間に相関があるかを散布図でプロットし、自分にとって最適な睡眠時間を探るヒントになる。
これらのグラフは、単に数字を眺めているだけでは気づきにくいパターンやトレンドを「一目で」把握できるようにしてくれる。例えば、週の後半になると特定の習慣が滞りがちであることや、特定の時間帯に無意識に時間を浪費していることなどが、グラフとして目の前に現れることで、客観的な事実として認識できる。
そして、最も重要なのが、これらの可視化されたデータから「洞察(インサイト)」を得て、「行動を変容させる」ことだ。グラフを見て「いつも水曜日はプログラミング学習時間が短いな」と気づいたら、その原因を考え、「水曜日は早く帰って別の趣味の時間に充てる代わりに、木曜日の朝にプログラミング時間を移動しよう」といった具体的な改善策を立てることができる。あるいは、「夜遅くまでスマートフォンを見ているせいで、睡眠の質が落ちている」と分かれば、寝る前のスマートフォン利用を控えるといった行動修正を行う。このように、データに基づいて自分の行動を客観的に評価し、改善のための具体的な計画を立て、実行するというサイクルこそが、データ駆動型の意思決定の本質だ。
この取り組みは、システムエンジニアの仕事に直接役立つスキルを磨くことにもつながる。データ収集、データ前処理、データ分析、そして可視化という一連のプロセスは、システムのログを分析して障害の原因を特定したり、ユーザーの行動データを分析して新しい機能のアイデアを考えたりする上で、非常に重要な基礎となるスキルだ。Pythonやデータ分析ライブラリの知識は、将来、大規模なデータを扱うデータエンジニアやデータサイエンティストといった職種だけでなく、一般的なシステムエンジニアにとっても、システムの効率改善や問題解決に必須の能力となりつつある。
自分の日常の習慣をデータとして捉え、プログラミングの力で分析し、改善するという一連のプロセスは、技術が私たちの生活を豊かにし、より良い選択をする手助けとなることを示している。このような思考法と技術を身につけることは、システムエンジニアとして多岐にわたる課題解決に取り組む上で、強力な武器となるだろう。単にコードを書くだけでなく、データから価値を引き出し、具体的な行動へとつなげる力が、現代のシステムエンジニアには求められているのだ。