Horizon Chart

Network Bandwidth Horizon

Clean horizon visualization of network bandwidth usage with mint green gradient bands.

Output
Network Bandwidth Horizon
Python
import matplotlib.pyplot as plt
import numpy as np

COLORS = {
    'bands': ['#D1FAE5', '#6EE7B7', '#34D399', '#10B981'],
    'background': '#ffffff',
    'text': '#1f2937',
    'grid': '#e5e7eb',
}

np.random.seed(456)
minutes = np.arange(0, 1440)  # Full day in minutes
# Network traffic pattern
traffic = 500 + 300 * np.sin(minutes * np.pi / 720) + np.random.normal(0, 80, len(minutes))
traffic = np.clip(traffic, 0, 1000)
traffic_norm = traffic / 1000

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

band = 0.25

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

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

ax.set_title('Network Bandwidth Usage (Mbps)', color=COLORS['text'], fontsize=12, fontweight='bold', pad=10)
ax.set_xlabel('Time', color=COLORS['text'], fontsize=10)
ax.set_ylabel('Bandwidth', color=COLORS['text'], fontsize=10)
ax.set_xticks([0, 360, 720, 1080, 1440])
ax.set_xticklabels(['00:00', '06:00', '12:00', '18:00', '24:00'])

for spine in ax.spines.values():
    spine.set_color(COLORS['grid'])
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