Horizon Chart
Warehouse Inventory Horizon
Supply chain horizon chart showing inventory level fluctuations with amber neon gradient.
Output
Python
import matplotlib.pyplot as plt
import numpy as np
COLORS = {
'bands': ['#4d3300', '#806600', '#F5B027', '#FCD34D'],
'background': '#0a0a0f',
'text': '#ffffff',
}
np.random.seed(2626)
days = np.arange(0, 90) # 3 months
# Inventory: depletion and replenishment cycles
base = 1000
depletion = -np.random.uniform(20, 40, len(days))
replenishment = np.zeros(len(days))
replenishment[::14] = np.random.uniform(400, 600, len(replenishment[::14])) # Bi-weekly
inventory = base + np.cumsum(depletion + replenishment)
inventory = np.clip(inventory, 200, 1500)
inventory_norm = (inventory - 200) / 1300
fig, ax = plt.subplots(figsize=(14, 3), facecolor=COLORS['background'])
ax.set_facecolor(COLORS['background'])
band = 0.25
ax.fill_between(days, 0, np.clip(inventory_norm, 0, band), color=COLORS['bands'][0])
ax.fill_between(days, 0, np.clip(inventory_norm - band, 0, band), color=COLORS['bands'][1])
ax.fill_between(days, 0, np.clip(inventory_norm - 2*band, 0, band), color=COLORS['bands'][2])
ax.fill_between(days, 0, np.clip(inventory_norm - 3*band, 0, band), color=COLORS['bands'][3])
ax.set_xlim(0, 89)
ax.set_ylim(0, 0.3)
ax.set_title('Warehouse Inventory Levels (units)', color=COLORS['text'], fontsize=12, fontweight='bold', pad=10)
ax.set_xlabel('Week', color=COLORS['text'], fontsize=10)
ax.set_ylabel('Units', color=COLORS['text'], fontsize=10)
ax.set_xticks([0, 14, 28, 42, 56, 70, 84])
ax.set_xticklabels(['W1', 'W2', 'W4', 'W6', 'W8', 'W10', 'W12'])
for spine in ax.spines.values():
spine.set_visible(False)
ax.tick_params(colors=COLORS['text'], labelsize=9)
plt.tight_layout()
plt.show()
Library
Matplotlib
Category
Time Series
More Horizon Chart examples
☕