Calendar Heatmap
Gratitude Entries Calendar
Daily gratitude journal entries tracked in neon coral gradient for mindfulness.
Output
Python
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.colors import LinearSegmentedColormap
import matplotlib.patches as mpatches
np.random.seed(140)
days = 365
gratitude = np.random.poisson(2.5, days)
gratitude = np.clip(gratitude, 0, 6)
gratitude[np.random.choice(days, size=50, replace=False)] = 0
weeks = 53
data = np.zeros((7, weeks))
for i, val in enumerate(gratitude):
week = i // 7
day = i % 7
if week < weeks:
data[day, week] = val
# CLAUDE.md Neon Coral palette
colors_neon = ['#ffffff', '#fce0ea', '#f77da4', '#F5276C']
cmap = LinearSegmentedColormap.from_list('neon_coral', colors_neon, N=256)
fig, ax = plt.subplots(figsize=(16, 4), facecolor='#ffffff')
ax.set_facecolor('#ffffff')
im = ax.imshow(data, cmap=cmap, aspect='auto', vmin=0, vmax=6)
ax.set_yticks(range(7))
ax.set_yticklabels(['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'], fontsize=9, color='#374151')
ax.set_xticks(range(0, 52, 4))
ax.set_xticklabels(['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec', ''],
fontsize=9, color='#374151')
ax.set_title('Gratitude Journal - Entries Per Day', fontsize=16, color='#1f2937', fontweight='bold', pad=15)
for i in range(8):
ax.axhline(y=i-0.5, color='#e5e7eb', linewidth=0.5)
for i in range(weeks+1):
ax.axvline(x=i-0.5, color='#e5e7eb', linewidth=0.5)
ax.tick_params(colors='#374151', length=0)
for spine in ax.spines.values():
spine.set_visible(False)
legend_elements = [mpatches.Patch(facecolor=c, label=l, edgecolor='#d1d5db')
for c, l in zip(colors_neon, ['0', '1', '2-3', '4+'])]
ax.legend(handles=legend_elements, loc='upper left', bbox_to_anchor=(0, -0.15), ncol=4,
fontsize=8, facecolor='#f9fafb', edgecolor='#d1d5db', labelcolor='#374151', title='Entries',
title_fontsize=9)
total = int(np.sum(gratitude))
streak_days = int(np.sum(gratitude > 0))
ax.annotate(f'{total} entries - {streak_days} active days', xy=(0.98, 1.1), xycoords='axes fraction',
fontsize=11, color='#F5276C', ha='right', fontweight='bold')
plt.tight_layout()
plt.subplots_adjust(bottom=0.25)
plt.show()
Library
Matplotlib
Category
Time Series
More Calendar Heatmap examples
☕