Heatmap
Skill Proficiency Matrix
Modern heatmap showing team member skill levels
Output
Python
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.colors import LinearSegmentedColormap
np.random.seed(456)
team = ['Alice', 'Bob', 'Carol', 'David', 'Emma', 'Frank', 'Grace', 'Henry']
skills = ['Python', 'JavaScript', 'SQL', 'AWS', 'Docker', 'ML/AI', 'React', 'Go']
data = np.random.randint(1, 6, (len(team), len(skills)))
data[0, 0:3] = [5, 4, 5]
data[2, 3:6] = [5, 5, 4]
data[4, 5:8] = [5, 5, 4]
colors = ['#fef2f2', '#fecaca', '#f87171', '#dc2626']
cmap = LinearSegmentedColormap.from_list('RedGrad', colors, N=5)
fig, ax = plt.subplots(figsize=(11, 9), facecolor='white')
im = ax.imshow(data, cmap=cmap, aspect='auto', vmin=1, vmax=5)
ax.set_xticks(range(len(skills)))
ax.set_yticks(range(len(team)))
ax.set_xticklabels(skills, fontsize=10, color='#374151', rotation=45, ha='right')
ax.set_yticklabels(team, fontsize=11, color='#1f2937')
for i in range(len(team)):
for j in range(len(skills)):
val = data[i, j]
color = '#ffffff' if val >= 4 else '#1f2937'
ax.text(j, i, f'{val}', ha='center', va='center', fontsize=12, fontweight='bold', color=color)
cbar = plt.colorbar(im, ax=ax, shrink=0.5, pad=0.02, ticks=[1, 2, 3, 4, 5])
cbar.ax.set_yticklabels(['Novice', 'Basic', 'Intermediate', 'Advanced', 'Expert'], fontsize=8)
cbar.ax.tick_params(colors='#6b7280', length=0)
cbar.outline.set_visible(False)
for spine in ax.spines.values():
spine.set_visible(False)
ax.tick_params(length=0)
ax.set_title('Team Skill Proficiency Matrix', fontsize=16, color='#111827', fontweight='bold', pad=15)
plt.tight_layout()
plt.show()
Library
Matplotlib
Category
Heatmaps & Density
More Heatmap examples
☕