Polar Chart

Monthly Revenue Rose

Florence Nightingale style revenue visualization

Output
Monthly Revenue Rose
Python
import matplotlib.pyplot as plt
import numpy as np

months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
revenue = [45, 52, 61, 58, 72, 85, 92, 88, 78, 82, 95, 110]

angles = np.linspace(0, 2 * np.pi, len(months), endpoint=False)
width = 2 * np.pi / len(months)

radii = np.sqrt(revenue)

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

colors = ['#4927F5', '#5314E6', '#276CF5', '#27D3F5', '#27F5B0', '#6CF527', 
          '#D3F527', '#F5D327', '#F5B027', '#F54927', '#F5276C', '#F527B0']
bars = ax.bar(angles, radii, width=width * 0.95, bottom=0, alpha=0.85)
for bar, c in zip(bars, colors):
    bar.set_facecolor(c)
    bar.set_edgecolor('white')
    bar.set_linewidth(0.8)

ax.set_xticks(angles)
ax.set_xticklabels(months, fontsize=10, color='white', fontweight='500')
ax.set_yticks([])
ax.spines['polar'].set_color('#555555')
ax.grid(color='#555555', linewidth=0.8, alpha=0.6)
ax.set_title('Monthly Revenue Rose', 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