Heatmap
App Usage Time Matrix
Modern heatmap displaying app usage patterns throughout the week
Output
Python
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.colors import LinearSegmentedColormap
np.random.seed(123)
apps = ['Instagram', 'TikTok', 'YouTube', 'Twitter', 'Spotify', 'Netflix', 'Gmail', 'Slack']
days = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
data = np.random.randint(5, 120, (len(apps), len(days)))
data[1, 5:7] = [145, 160]
data[2, 5:7] = [130, 140]
data[5, 5:7] = [180, 200]
colors = ['#ecfeff', '#a5f3fc', '#22d3ee', '#0891b2']
cmap = LinearSegmentedColormap.from_list('CyanGrad', colors, N=256)
fig, ax = plt.subplots(figsize=(11, 9), facecolor='white')
im = ax.imshow(data, cmap=cmap, aspect='auto', vmin=0, vmax=200)
ax.set_xticks(range(len(days)))
ax.set_yticks(range(len(apps)))
ax.set_xticklabels(days, fontsize=11, color='#374151', fontweight='500')
ax.set_yticklabels(apps, fontsize=11, color='#1f2937')
for i in range(len(apps)):
for j in range(len(days)):
val = data[i, j]
color = '#ffffff' if val > 120 else '#1f2937'
ax.text(j, i, f'{val}', ha='center', va='center', fontsize=10, fontweight='600', color=color)
cbar = plt.colorbar(im, ax=ax, shrink=0.6, pad=0.02)
cbar.set_label('Minutes', fontsize=11, color='#1f2937')
cbar.ax.tick_params(labelsize=9, colors='#6b7280')
cbar.outline.set_visible(False)
for spine in ax.spines.values():
spine.set_visible(False)
ax.tick_params(length=0)
ax.set_title('Weekly App Usage Time', fontsize=16, color='#111827', fontweight='bold', pad=15)
plt.tight_layout()
plt.show()
Library
Matplotlib
Category
Heatmaps & Density
More Heatmap examples
☕