Faceted Scatter Plot

Automotive Efficiency by Powertrain

Efficiency-emissions tradeoff across automotive powertrains

Output
Automotive Efficiency by Powertrain
Python
import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd
import numpy as np

np.random.seed(888)

fuels = ['Gasoline', 'Diesel', 'Hybrid', 'Electric']
data = []
for fuel in fuels:
    n = 40
    efficiency = np.random.uniform(15, 60, n)
    emission_factors = {'Gasoline': -3.5, 'Diesel': -2.8, 'Hybrid': -1.5, 'Electric': -0.3}
    emissions = 250 + emission_factors[fuel] * efficiency + np.random.normal(0, 15, n)
    emissions = np.clip(emissions, 0, 300)
    for ef, em in zip(efficiency, emissions):
        data.append({'Efficiency (mpg)': ef, 'CO2 (g/mi)': em, 'Fuel Type': fuel})

df = pd.DataFrame(data)

sns.set_style("whitegrid", {
    'axes.facecolor': '#ffffff',
    'figure.facecolor': '#ffffff',
    'grid.color': '#eeeeee'
})

palette = ['#9C2007', '#4927F5', '#6CF527', '#27D3F5']

g = sns.lmplot(
    data=df,
    x='Efficiency (mpg)',
    y='CO2 (g/mi)',
    hue='Fuel Type',
    col='Fuel Type',
    col_wrap=2,
    height=3.5,
    aspect=1.2,
    palette=palette,
    scatter_kws={'alpha': 0.75, 's': 55, 'edgecolor': 'white', 'linewidths': 0.6},
    line_kws={'linewidth': 2.5},
    ci=95
)

g.fig.set_facecolor('#ffffff')
for ax in g.axes.flat:
    ax.set_facecolor('#ffffff')
    for spine in ax.spines.values():
        spine.set_color('#dddddd')

g.fig.suptitle('Powertrain Environmental Impact', fontsize=14, fontweight='bold', color='#1a1a1a', 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