Heatmap
SEO Keyword Heatmap
Light theme heatmap showing keyword rankings
Output
Python
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.colors import LinearSegmentedColormap
from matplotlib.patches import FancyBboxPatch
fig, ax = plt.subplots(figsize=(14, 8), facecolor='#ffffff')
ax.set_facecolor('#ffffff')
np.random.seed(42)
keywords = ['python tutorial', 'machine learning', 'data science', 'web dev', 'api design']
metrics = ['Volume', 'Difficulty', 'CTR', 'Position', 'Traffic']
scores = np.random.randint(10, 100, (len(keywords), len(metrics)))
colors = ['#1e293b', '#581c87', '#a855f7', '#d8b4fe', '#f5d0fe']
cmap = LinearSegmentedColormap.from_list('seo', colors, N=256)
cell_width = 0.88
cell_height = 0.82
for i in range(len(keywords)):
for j in range(len(metrics)):
val = scores[i, j]
color = cmap(val / 100)
rect = FancyBboxPatch((j - cell_width/2, i - cell_height/2),
cell_width, cell_height,
boxstyle="round,pad=0.02,rounding_size=0.12",
facecolor=color, edgecolor='#e2e8f0', linewidth=1.5)
ax.add_patch(rect)
ax.text(j, i, str(val), ha='center', va='center',
color='#1e293b', fontsize=11, fontweight='bold')
ax.set_xlim(-0.5, len(metrics) - 0.5)
ax.set_ylim(-0.5, len(keywords) - 0.5)
ax.set_aspect('equal')
ax.invert_yaxis()
ax.set_xticks(range(len(metrics)))
ax.set_yticks(range(len(keywords)))
ax.set_xticklabels(metrics, color='#64748b', fontsize=10, fontweight='500')
ax.set_yticklabels(keywords, color='#1e293b', fontsize=10, fontweight='500')
sm = plt.cm.ScalarMappable(cmap=cmap, norm=plt.Normalize(vmin=0, vmax=100))
cbar = plt.colorbar(sm, ax=ax, shrink=0.8, aspect=30, pad=0.02)
cbar.set_label('Score', color='#1e293b', fontsize=11, fontweight='500')
cbar.ax.yaxis.set_tick_params(color='#64748b')
plt.setp(plt.getp(cbar.ax.axes, 'yticklabels'), color='#64748b')
cbar.outline.set_edgecolor('#e2e8f0')
for spine in ax.spines.values():
spine.set_visible(False)
ax.set_title('SEO Keyword Performance Matrix', fontsize=18, color='#1e293b', fontweight='bold', pad=20)
ax.tick_params(length=0)
plt.tight_layout()
plt.show()
Library
Matplotlib
Category
Heatmaps & Density
More Heatmap examples
☕