Heatmap
Team Skills Matrix
Employee competency heatmap across skill areas
Output
Python
import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd
import numpy as np
from matplotlib.colors import LinearSegmentedColormap
np.random.seed(42)
# Team members and skills
members = ['Alice', 'Bob', 'Carol', 'David', 'Eve', 'Frank', 'Grace', 'Henry']
skills = ['Python', 'SQL', 'ML/AI', 'Cloud', 'DevOps', 'Communication', 'Leadership', 'Problem Solving']
# Skill levels (1-5)
levels = np.random.randint(2, 5, (len(members), len(skills))) + np.random.rand(len(members), len(skills))
# Add specializations
levels[0, 0:3] += 1 # Alice: Data Science
levels[1, 3:5] += 1 # Bob: Infrastructure
levels[2, 5:8] += 1 # Carol: Soft skills
levels[3, 2] += 1.5 # David: ML specialist
levels = np.clip(levels, 1, 5)
df = pd.DataFrame(levels, index=members, columns=skills)
# NEON green-blue colormap
neon_skill = LinearSegmentedColormap.from_list('neon_skill', ['#f3f4f6', '#27F5B0', '#27D3F5', '#4927F5'])
fig, ax = plt.subplots(figsize=(10, 6), facecolor='#ffffff')
ax.set_facecolor('#ffffff')
sns.heatmap(df, cmap=neon_skill, annot=True, fmt='.1f', linewidths=2, linecolor='#ffffff',
vmin=1, vmax=5, annot_kws={'size': 10, 'fontweight': '500'},
cbar_kws={'shrink': 0.8, 'label': 'Skill Level (1-5)'}, ax=ax)
ax.set_title('Team Skills Assessment', color='#1f2937', fontsize=14, fontweight='bold', pad=15)
ax.set_xlabel('Skill', color='#1f2937', fontsize=11)
ax.set_ylabel('Team Member', color='#1f2937', fontsize=11)
ax.tick_params(colors='#374151', labelsize=10)
ax.set_xticklabels(ax.get_xticklabels(), rotation=30, ha='right')
plt.tight_layout()
plt.show()
Library
Matplotlib
Category
Heatmaps & Density
More Heatmap examples
☕