KDE Plot
Oven Cooking Temperature Distribution
KDE of oven temperatures used in home cooking recipes.
Output
Python
import matplotlib.pyplot as plt
import numpy as np
from scipy import stats
np.random.seed(205)
low = np.random.normal(150, 20, 200)
medium = np.random.normal(180, 15, 400)
high = np.random.normal(220, 20, 300)
temps = np.concatenate([low, medium, high])
temps = temps[(temps > 100) & (temps < 280)]
kde = stats.gaussian_kde(temps)
x = np.linspace(100, 280, 500)
y = kde(x)
colors = ['#1e3a8a', '#3b82f6', '#22d3ee', '#fbbf24', '#f97316', '#dc2626']
fig, ax = plt.subplots(figsize=(12, 6), facecolor='#ffffff')
ax.set_facecolor('#ffffff')
for i in range(len(x)-1):
norm_val = (x[i] - 100) / 180
color_idx = int(norm_val * (len(colors) - 1))
color_idx = max(0, min(color_idx, len(colors)-1))
ax.fill_between(x[i:i+2], y[i:i+2], alpha=0.6, color=colors[color_idx])
ax.plot(x, y, color='#374151', linewidth=2.5)
recipes = [(150, 'Slow Cook'), (180, 'Baking'), (200, 'Roasting'), (230, 'Pizza')]
for val, label in recipes:
ax.axvline(val, color='#9ca3af', linestyle='--', linewidth=1.5, alpha=0.7)
ax.text(val+3, max(y)*0.85, label, color='#6b7280', fontsize=8, rotation=90, va='top')
ax.set_xlabel('Temperature (C)', fontsize=12, color='#1f2937', fontweight='500')
ax.set_ylabel('Density', fontsize=12, color='#1f2937', fontweight='500')
ax.set_title('Oven Cooking Temperature Distribution', fontsize=16, color='#1f2937', fontweight='bold', pad=15)
ax.tick_params(colors='#374151', labelsize=10)
for spine in ax.spines.values():
spine.set_color('#d1d5db')
ax.grid(True, alpha=0.3, color='#e5e7eb')
ax.set_xlim(100, 280)
plt.tight_layout()
plt.show()
Library
Matplotlib
Category
Statistical
☕