Area Chart
Funnel Stage Flow
Conversion funnel as flowing area.
Output
Python
import matplotlib.pyplot as plt
import numpy as np
# Data - Conversion funnel
stages = ['Visitors', 'Signups', 'Activated', 'Paid', 'Retained']
values = [10000, 3500, 1800, 800, 450]
x = np.arange(len(stages))
# Figure - LIGHT THEME
fig, ax = plt.subplots(figsize=(10, 6), facecolor='#ffffff')
ax.set_facecolor('#ffffff')
# Funnel as flowing area
colors = ['#4927F5', '#27D3F5', '#6CF527', '#F5B027', '#F5276C']
max_val = max(values)
for i, (val, color) in enumerate(zip(values, colors)):
width = val / max_val
ax.barh(i, width, height=0.7, color=color, alpha=0.8)
ax.text(width + 0.02, i, f'{val:,}', va='center', ha='left', color='#1f2937', fontsize=11, fontweight='bold')
if i > 0:
conv_rate = (val / values[i-1]) * 100
ax.text(width/2, i, f'{conv_rate:.0f}%', va='center', ha='center', color='white', fontsize=10, fontweight='bold')
# Styling
ax.set_yticks(x)
ax.set_yticklabels(stages)
ax.set_xlabel('Relative Volume', color='#1f2937', fontsize=11)
ax.set_title('Conversion Funnel Flow', color='#1f2937', fontsize=14, fontweight='bold', pad=15)
ax.tick_params(colors='#374151', labelsize=10)
ax.invert_yaxis()
for spine in ax.spines.values():
spine.set_visible(False)
ax.set_xlim(0, 1.15)
ax.xaxis.set_visible(False)
plt.tight_layout()
plt.show()
Library
Matplotlib
Category
Basic Charts
More Area Chart examples
☕