Faceted Scatter Plot

Climate Sensitivity by Region

Faceted temperature-CO2 regression across global regions

Output
Climate Sensitivity by Region
Python
import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd
import numpy as np

np.random.seed(321)

regions = ['Arctic', 'Temperate', 'Tropical', 'Antarctic']
data = []
for region in regions:
    n = 40
    co2 = np.random.uniform(300, 420, n)
    sensitivities = {'Arctic': 0.025, 'Temperate': 0.012, 'Tropical': 0.008, 'Antarctic': 0.018}
    temp_anomaly = sensitivities[region] * (co2 - 280) - 0.3 + np.random.normal(0, 0.2, n)
    for c, t in zip(co2, temp_anomaly):
        data.append({'CO2 (ppm)': c, 'Temp Anomaly (°C)': t, 'Region': region})

df = pd.DataFrame(data)

plt.style.use('dark_background')
sns.set_style("darkgrid", {
    'axes.facecolor': '#0a0a0f',
    'figure.facecolor': '#0a0a0f',
    'grid.color': '#333333'
})

palette = ['#27D3F5', '#6CF527', '#F5B027', '#F527B0']

g = sns.lmplot(
    data=df,
    x='CO2 (ppm)',
    y='Temp Anomaly (°C)',
    hue='Region',
    col='Region',
    col_wrap=2,
    height=3.5,
    aspect=1.2,
    palette=palette,
    scatter_kws={'alpha': 0.7, 's': 50, 'edgecolor': 'white', 'linewidths': 0.5},
    line_kws={'linewidth': 2.5},
    ci=95
)

g.fig.set_facecolor('#0a0a0f')
for ax in g.axes.flat:
    ax.set_facecolor('#0a0a0f')
    for spine in ax.spines.values():
        spine.set_color('#333333')

g.fig.suptitle('Regional Climate Sensitivity', fontsize=14, fontweight='bold', color='white', y=1.02)
plt.tight_layout()
plt.show()
Library

Matplotlib

Category

Pairwise Data

Did this help you?

Support PyLucid to keep it free & growing

Support