Toma(とま)のゲーム日記

MHNOW、MHWIB、ELDEN RING、WILD HEARTSなどの役立ち情報をアップしていきます。ツイッターでの懸賞応募、自炊、家庭菜園といろいろ始めました。

記事内に商品プロモーションを含む場合があります。

Pythonで描く成長曲線:4/1起点で3日周期の目盛にこだわった理由

エンジニアのToma(とま)です。4月に入り、noteの運用も一つの大きな節目を迎えました。今回は、以前からPythonで取り組んでいた「ブログ進捗の可視化」について、実戦的なアップデートを行ったので記録しておきます。

今回こだわったのは、グラフの横軸を「4/1起点」に固定し、さらに「3日おき」という規則正しいスケーリングを適用したことです。日々不規則に増え続けるPVデータを、いかに冷静に、かつ客観的に見つめ直せるか。エンジニアとしての意地を少しだけコードに込めてみました。

 

進捗管理グラフの技術的アップデート

これまではデータが増えるたびに軸の目盛が自動で動いてしまい、数日前との比較が直感的にしづらいという課題がありました。これを「3日1サイクル」という固定スパンに変えることで、成長の鈍化や加速を一定の基準(グリッド)の上で判断できるようになります。

4月上旬のPV推移グラフ。目盛が自動設定のため間隔が不均一な状態

↓初期型から変更後

4/1を起点とし、3日ごとに目盛を固定した最新のPV推移グラフ。成長率が直感的に把握可能

 

今回のロジカル改善ポイント

  • pd.date_range(freq='3D')による等間隔スケーリング
  • 開始点を4/1 00:00に強制固定
  • 累計PV(折れ線)と累計記事数(棒)の上下対比による効率分析

※エンジニア視点:時間軸を正規化することで、単なる数字の増加ではない「成長の質」を可視化する狙いがあります。

実装に使用したPythonコード

今回のスケーリング調整に使用したMatplotlibのコード(抜粋)です。同じようにブログ分析を行いたい方は参考にしてみてください。

import pandas as pd
import matplotlib.pyplot as plt
import matplotlib
import matplotlib.dates as mdates

# 日本語表示の設定
matplotlib.rc('font', family='MS Gothic')

# 1. データの定義(抜粋)
# data = [["4/1 18:23", 0, ...]]

# スケーリングのロジック
# pd.date_rangeを用いて、4/1 00:00から3日おきのインデックスを作成
# ax.set_xticks(pd.date_range(start='2026-04-01', end=df['datetime'].max(), freq='3D'))

# 各ポイントの注釈 (xy_offset = [時間(h)ずらし, PVずらし])
def add_milestone(pv_val, label, color, xy_offset):
    idx = df[df['views'] >= pv_val].index[0]
    ax1.annotate(label, 
                 xy=(df['datetime'].iloc[idx], df['views'].iloc[idx]), 
                 xytext=(df['datetime'].iloc[idx] + pd.Timedelta(hours=xy_offset[0]), df['views'].iloc[idx] + xy_offset[1]),
                 arrowprops=dict(arrowstyle="->", color=color, lw=1.5),
                 fontsize=9, color=color, fontweight='bold',
                 bbox=dict(boxstyle='round,pad=0.3', fc='white', ec=color, alpha=0.8))

add_milestone(500, '500PV', 'green', [-48, 200])
add_milestone(1000, '1,000PV', 'darkgreen', [-48, 300])
add_milestone(2000, '2,000PV', 'crimson', [-48, 400])

結果として、4/17に3K PV、そして本日4/20には4K PVを突破。この3日周期の目盛の上に描かれる右肩上がりの曲線は、私にとって何よりのモチベーション維持装置になっています。

「30の法則」に基づく進捗管理。次は5K、そしてその先へ。Pythonという武器を手に、データとともに歩んでいこうと思います。


最新の分析データやゲーム攻略情報は、はてなブログでも詳しく公開しています。
Tomaのゲーム日記(はてなブログ)

【AI利用に関する開示】当ブログの一部コンテンツには、AI(人工知能)による執筆支援や画像生成を使用しています。