Horizon Chart

Industrial Carbon Emissions Horizon

Environmental monitoring horizon chart showing CO2 emissions with gray/white gradient on dark background.

Output
Industrial Carbon Emissions Horizon
Python
import matplotlib.pyplot as plt
import numpy as np

COLORS = {
    'bands': ['#1f1f1f', '#4a4a4a', '#9CA3AF', '#E5E7EB'],
    'background': '#0a0a0f',
    'text': '#ffffff',
}

np.random.seed(3030)
hours = np.arange(0, 720)  # 30 days
# Emissions: follows production schedule
production = 60 + 30 * np.sin(hours * 2 * np.pi / 24)  # Daily cycle
weekend_reduction = np.where((hours % 168 > 120), -20, 0)
maintenance = np.zeros(len(hours))
maintenance[350:380] = -40  # Planned maintenance
emissions = production + weekend_reduction + maintenance + np.random.normal(0, 8, len(hours))
emissions = np.clip(emissions, 0, 100)
emissions_norm = emissions / 100

fig, ax = plt.subplots(figsize=(14, 3), facecolor=COLORS['background'])
ax.set_facecolor(COLORS['background'])

band = 0.25

ax.fill_between(hours, 0, np.clip(emissions_norm, 0, band), color=COLORS['bands'][0])
ax.fill_between(hours, 0, np.clip(emissions_norm - band, 0, band), color=COLORS['bands'][1])
ax.fill_between(hours, 0, np.clip(emissions_norm - 2*band, 0, band), color=COLORS['bands'][2])
ax.fill_between(hours, 0, np.clip(emissions_norm - 3*band, 0, band), color=COLORS['bands'][3])

ax.set_xlim(0, 719)
ax.set_ylim(0, 0.3)

ax.set_title('Industrial CO₂ Emissions (tons/hour)', color=COLORS['text'], fontsize=12, fontweight='bold', pad=10)
ax.set_xlabel('Week', color=COLORS['text'], fontsize=10)
ax.set_ylabel('CO₂ (tons/hr)', color=COLORS['text'], fontsize=10)
ax.set_xticks([0, 168, 336, 504, 672])
ax.set_xticklabels(['Week 1', 'Week 2', 'Week 3', 'Week 4', ''])

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

Did this help you?

Support PyLucid to keep it free & growing

Support