Linear Regression Plot
Sleep Hours vs Productivity Score
Health and workplace performance analysis
Output
Python
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd
np.random.seed(408)
BG_COLOR = '#0a0a0f'
TEXT_COLOR = 'white'
n = 70
sleep = np.random.uniform(4, 10, n)
productivity = 30 + 8 * sleep + np.random.normal(0, 8, n)
productivity = np.clip(productivity, 0, 100)
df = pd.DataFrame({'Sleep Hours': sleep, 'Productivity Score': productivity})
fig, ax = plt.subplots(figsize=(10, 6), facecolor=BG_COLOR)
ax.set_facecolor(BG_COLOR)
sns.regplot(
data=df,
x='Sleep Hours',
y='Productivity Score',
scatter_kws={'color': '#276CF5', 'alpha': 0.7, 's': 55, 'edgecolor': 'white', 'linewidths': 0.5},
line_kws={'color': '#F5B027', 'linewidth': 2.5},
ci=95,
ax=ax
)
for collection in ax.collections[1:]:
collection.set_facecolor('#F5B027')
collection.set_alpha(0.15)
ax.axvspan(7, 9, alpha=0.1, color='#22c55e')
ax.text(8, 95, 'Optimal', color='#22c55e', fontsize=9, ha='center')
corr = np.corrcoef(sleep, productivity)[0, 1]
ax.text(0.05, 0.95, 'r = %.3f' % corr, transform=ax.transAxes, fontsize=12,
color='#F5B027', fontweight='bold', va='top',
bbox=dict(boxstyle='round,pad=0.3', facecolor='#1a1a2e', edgecolor='#333'))
ax.set_xlabel('Sleep Hours', fontsize=12, color=TEXT_COLOR, fontweight='500')
ax.set_ylabel('Productivity Score', fontsize=12, color=TEXT_COLOR, fontweight='500')
ax.set_title('Sleep vs Productivity', fontsize=14, color=TEXT_COLOR, fontweight='bold', pad=15)
ax.tick_params(colors='#888', labelsize=10)
for spine in ax.spines.values():
spine.set_color('#333')
plt.tight_layout()
plt.show()
Library
Matplotlib
Category
Pairwise Data
More Linear Regression Plot examples
☕