Polar Chart

Team Velocity Sprint Metrics

Agile sprint velocity radar showing team performance across different sprint metrics and story completion rates.

Output
Team Velocity Sprint Metrics
Python
import matplotlib.pyplot as plt
import numpy as np

# Sprint metrics
metrics = ['Stories\nCompleted', 'Bug Fixes', 'Code\nReviews', 'Tests\nWritten', 
           'Documentation', 'Refactoring', 'Tech Debt', 'Deployments']
team_a = [85, 92, 78, 88, 65, 72, 80, 95]
team_b = [78, 75, 90, 82, 85, 88, 70, 85]

# Prepare angles
angles = np.linspace(0, 2 * np.pi, len(metrics), endpoint=False).tolist()
team_a_plot = team_a + [team_a[0]]
team_b_plot = team_b + [team_b[0]]
angles += angles[:1]

# Light theme
fig, ax = plt.subplots(figsize=(10, 10), subplot_kw=dict(polar=True), facecolor='#ffffff')
ax.set_facecolor('#ffffff')

# Team A
ax.fill(angles, team_a_plot, color='#4927F5', alpha=0.2)
ax.plot(angles, team_a_plot, color='#4927F5', linewidth=2.5, label='Team Alpha')

# Team B
ax.fill(angles, team_b_plot, color='#F54927', alpha=0.2)
ax.plot(angles, team_b_plot, color='#F54927', linewidth=2.5, label='Team Beta')

# Styling
ax.set_ylim(0, 100)
ax.set_xticks(angles[:-1])
ax.set_xticklabels(metrics, fontsize=10, color='#1f2937', fontweight='500')
ax.set_yticks([25, 50, 75, 100])
ax.set_yticklabels(['25', '50', '75', '100'], fontsize=9, color='#6b7280')

ax.spines['polar'].set_color('#e5e7eb')
ax.grid(color='#e5e7eb', linewidth=0.8)
ax.tick_params(colors='#374151')

ax.set_title('Sprint Velocity Comparison', fontsize=16, color='#1f2937', fontweight='bold', pad=25)
ax.legend(loc='upper right', bbox_to_anchor=(1.2, 1.1), frameon=False)

plt.tight_layout()
plt.show()
Library

Matplotlib

Category

Part-to-Whole

Did this help you?

Support PyLucid to keep it free & growing

Support