Polar Chart

Language Proficiency Radar

Multi-language skill assessment with gradient fills

Output
Language Proficiency Radar
Python
import matplotlib.pyplot as plt
import numpy as np

languages = ['Python', 'JavaScript', 'Go', 'Rust', 'Java', 'C++']
proficiency = [95, 82, 65, 55, 70, 60]

proficiency += proficiency[:1]
angles = np.linspace(0, 2 * np.pi, len(languages), endpoint=False).tolist()
angles += angles[:1]

fig, ax = plt.subplots(figsize=(10, 10), subplot_kw=dict(polar=True), facecolor='#0a0a0f')
ax.set_facecolor('#0a0a0f')

for lw, alpha in [(10, 0.1), (6, 0.18), (3, 0.35)]:
    ax.plot(angles, proficiency, color='#27D3F5', linewidth=lw, alpha=alpha)
ax.plot(angles, proficiency, color='#27D3F5', linewidth=2)
ax.fill(angles, proficiency, color='#27D3F5', alpha=0.25)

# Add skill level markers
for angle, prof in zip(angles[:-1], proficiency[:-1]):
    ax.scatter(angle, prof, color='#27D3F5', s=80, zorder=5, edgecolor='white', linewidth=2)

ax.set_xticks(angles[:-1])
ax.set_xticklabels(languages, fontsize=11, color='white', fontweight='500')
ax.set_ylim(0, 100)
ax.set_yticks([25, 50, 75, 100])
ax.set_yticklabels(['25', '50', '75', '100'], fontsize=9, color='#666666')
ax.spines['polar'].set_color('#555555')
ax.grid(color='#555555', linewidth=0.8, alpha=0.7)
ax.set_title('Language Proficiency Radar', fontsize=16, color='white', fontweight='bold', pad=20, y=1.08)

plt.tight_layout()
plt.show()
Library

Matplotlib

Category

Part-to-Whole

Did this help you?

Support PyLucid to keep it free & growing

Support