📊
Obsidian Heatmap Calendarで習慣を可視化する方法
はじめに
日々の習慣を継続することは難しいですが、進捗を視覚化できれば、モチベーションの維持に繋がります。この記事では、ObsidianのHeatmap Calendarプラグインを使って、習慣の継続状況をGitHubの草のようなヒートマップで表示する方法を紹介します。

"該当Github repoレポジトリより"
必要なもの
- Obsidian
- 以下の2つのプラグイン:
- Dataview
- Heatmap Calendar
セットアップ手順
1. プラグインのインストールと有効化
Dataviewプラグインの設定
- Obsidianの設定画面から「コミュニティプラグイン」を開く
- 「Dataview」を検索してインストール
- インストール後、Dataviewの設定画面で以下を有効化:
- ✅ JavaScript queries
- ✅ Inline JavaScript queries
Heatmap Calendarプラグインのインストール
- 同様に「Heatmap Calendar」を検索してインストール
- 有効化(色設定は後で変更可能)
2. 習慣トラッキング用のデイリーノートを準備
フォルダ構造の作成例
vault/
└── daily-notes/
├── 2024-08-01.md
├── 2024-08-02.md
└── ...
デイリーノートにプロパティを追加
各デイリーノートの先頭に、追跡したい習慣をプロパティとして追加します:
プロパティについての詳細はこちらの記事が参考になります。
---
exercise: true
reading: false
meditation: true
---
3. ヒートマップ表示用ノートの作成
新規ノートを作成
habit-calendar.mdなどの名前で新しいノートを作成します。
JavaScriptコードの追加
Heatmap CalendarのGitHubページからサンプルコードをコピーして、ノートに貼り付けます。
コード例(上記サンプルページから引用。yearを2025に変更):
```dataviewjs
dv.span("** 😊 Title 😥**") /* optional ⏹️💤⚡⚠🧩↑↓⏳📔💾📁📝🔄📝🔀⌨️🕸️📅🔍✨ */
const calendarData = {
year: 2025, // (optional) defaults to current year
colors: { // (optional) defaults to green
blue: ["#8cb9ff", "#69a3ff", "#428bff", "#1872ff", "#0058e2"], // first entry is considered default if supplied
green: ["#c6e48b", "#7bc96f", "#49af5d", "#2e8840", "#196127"],
red: ["#ff9e82", "#ff7b55", "#ff4d1a", "#e73400", "#bd2a00"],
orange: ["#ffa244", "#fd7f00", "#dd6f00", "#bf6000", "#9b4e00"],
pink: ["#ff96cb", "#ff70b8", "#ff3a9d", "#ee0077", "#c30062"],
orangeToRed: ["#ffdf04", "#ffbe04", "#ff9a03", "#ff6d02", "#ff2c01"]
},
showCurrentDayBorder: true, // (optional) defaults to true
defaultEntryIntensity: 4, // (optional) defaults to 4
intensityScaleStart: 10, // (optional) defaults to lowest value passed to entries.intensity
intensityScaleEnd: 100, // (optional) defaults to highest value passed to entries.intensity
entries: [], // (required) populated in the DataviewJS loop below
}
//DataviewJS loop
for (let page of dv.pages('"daily notes"').where(p => p.exercise)) {
//dv.span("<br>" + page.file.name) // uncomment for troubleshooting
calendarData.entries.push({
date: page.file.name, // (required) Format YYYY-MM-DD
intensity: page.exercise, // (required) the data you want to track, will map color intensities automatically
content: "🏋️", // (optional) Add text to the date cell
color: "orange", // (optional) Reference from *calendarData.colors*. If no color is supplied; colors[0] is used
})
}
renderHeatmapCalendar(this.container, calendarData)
```
実行結果
設定が完了すると、以下のような表示になります:
- ✅ exerciseプロパティがtrueの日:オレンジ色で表示
- ⬜ falseまたは未記録の日:グレーで表示
GitHubの草のように、習慣の継続状況が一目で分かるようになります。

カスタマイズのアイデア
複数の習慣を追跡
複数の習慣を別々のヒートマップで表示したい場合は、プロパティごとにコードブロックを作成:
// 運動の記録
for(let page of dv.pages('"daily-notes"').where(p => p.exercise === true)) {...}
// 読書の記録
for(let page of dv.pages('"daily-notes"').where(p => p.reading === true)) {...}
色のカスタマイズ
colorsオブジェクトを変更することで、好みの配色に変更できます:
colors: {
green: ["#c6e48b", "#7bc96f", "#52a852", "#239a3b", "#196127"],
}
まとめ
Obsidian Heatmap Calendarプラグインを使うことで、習慣の継続状況を視覚的に確認できるようになります。毎日の小さな積み重ねが、ヒートマップ上で徐々に色づいていく様子は、習慣化のモチベーション維持に大きく貢献しています。
ぜひ自分の習慣トラッキングにも活用してみてください!
Discussion