Faceted Scatter Plot
Soil Nutrients by Ecosystem
Nitrogen-carbon relationship across biome types
Output
Python
import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd
import numpy as np
np.random.seed(222)
ecosystems = ['Forest', 'Grassland', 'Wetland', 'Desert']
data = []
for eco in ecosystems:
n = 38
carbon = np.random.uniform(5, 80, n)
ratios = {'Forest': 0.08, 'Grassland': 0.06, 'Wetland': 0.1, 'Desert': 0.04}
nitrogen = ratios[eco] * carbon + np.random.normal(0, 0.3, n)
for c, nt in zip(carbon, nitrogen):
data.append({'Carbon (g/kg)': c, 'Nitrogen (g/kg)': nt, 'Ecosystem': eco})
df = pd.DataFrame(data)
plt.style.use('dark_background')
sns.set_style("darkgrid", {
'axes.facecolor': '#0a0a0f',
'figure.facecolor': '#0a0a0f',
'grid.color': '#333333'
})
palette = ['#6CF527', '#D3F527', '#27D3F5', '#F5B027']
g = sns.lmplot(
data=df,
x='Carbon (g/kg)',
y='Nitrogen (g/kg)',
hue='Ecosystem',
col='Ecosystem',
col_wrap=2,
height=3.5,
aspect=1.2,
palette=palette,
scatter_kws={'alpha': 0.7, 's': 52, 'edgecolor': 'white', 'linewidths': 0.4},
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('C:N Stoichiometry by Biome', fontsize=14, fontweight='bold', color='white', y=1.02)
plt.tight_layout()
plt.show()
Library
Matplotlib
Category
Pairwise Data
More Faceted Scatter Plot examples
☕