Heatmap
Monthly Sales Performance
Modern heatmap showing sales performance across regions and months
Output
Python
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.colors import LinearSegmentedColormap
np.random.seed(42)
regions = ['North America', 'Europe', 'Asia Pacific', 'Latin America', 'Middle East', 'Africa']
months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
data = np.random.randint(40, 100, (len(regions), len(months)))
data[0, 6:9] = [95, 98, 92]
data[2, 3:6] = [88, 91, 94]
colors = ['#f8fafc', '#ddd6fe', '#a78bfa', '#7c3aed']
cmap = LinearSegmentedColormap.from_list('PurpleGrad', colors, N=256)
fig, ax = plt.subplots(figsize=(14, 7), facecolor='white')
im = ax.imshow(data, cmap=cmap, aspect='auto', vmin=40, vmax=100)
ax.set_xticks(range(len(months)))
ax.set_yticks(range(len(regions)))
ax.set_xticklabels(months, fontsize=10, color='#374151')
ax.set_yticklabels(regions, fontsize=10, color='#1f2937')
for i in range(len(regions)):
for j in range(len(months)):
val = data[i, j]
color = '#ffffff' if val > 80 else '#1f2937'
ax.text(j, i, f'{val}', ha='center', va='center', fontsize=9, fontweight='500', color=color)
cbar = plt.colorbar(im, ax=ax, shrink=0.6, pad=0.02)
cbar.set_label('Performance %', 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('Monthly Sales Performance by Region', fontsize=16, color='#111827', fontweight='bold', pad=15)
plt.tight_layout()
plt.show()
Library
Matplotlib
Category
Heatmaps & Density
More Heatmap examples
☕