Correlogram
Iris Species Classification
Classic botanical dataset correlogram with species differentiation
Output
Python
import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd
import numpy as np
np.random.seed(42)
n = 150
species = np.random.choice(['Setosa', 'Versicolor', 'Virginica'], n)
data = {
'Sepal Length': np.where(species == 'Setosa', np.random.normal(5, 0.4, n),
np.where(species == 'Versicolor', np.random.normal(5.9, 0.5, n), np.random.normal(6.6, 0.6, n))),
'Sepal Width': np.where(species == 'Setosa', np.random.normal(3.4, 0.4, n),
np.where(species == 'Versicolor', np.random.normal(2.8, 0.3, n), np.random.normal(3, 0.3, n))),
'Petal Length': np.where(species == 'Setosa', np.random.normal(1.4, 0.2, n),
np.where(species == 'Versicolor', np.random.normal(4.3, 0.5, n), np.random.normal(5.5, 0.6, n))),
'Petal Width': np.where(species == 'Setosa', np.random.normal(0.2, 0.1, n),
np.where(species == 'Versicolor', np.random.normal(1.3, 0.2, n), np.random.normal(2, 0.3, n))),
'Species': species
}
df = pd.DataFrame(data)
sns.set_style("whitegrid", {
'axes.facecolor': '#ffffff',
'figure.facecolor': '#ffffff',
'grid.color': '#eeeeee'
})
palette = {'Setosa': '#F5276C', 'Versicolor': '#27D3F5', 'Virginica': '#6CF527'}
g = sns.pairplot(
df,
hue='Species',
palette=palette,
height=2,
kind='scatter',
diag_kind='kde',
markers=['o', 's', 'D'],
plot_kws={'alpha': 0.75, 's': 55, 'edgecolor': 'white', 'linewidths': 0.8},
diag_kws={'alpha': 0.5, 'linewidth': 2.5, 'fill': True}
)
g.fig.set_facecolor('#ffffff')
for ax in g.axes.flat:
if ax:
ax.set_facecolor('#ffffff')
for spine in ax.spines.values():
spine.set_color('#dddddd')
ax.tick_params(colors='#666666')
ax.xaxis.label.set_color('#333333')
ax.yaxis.label.set_color('#333333')
g.fig.suptitle('Iris Morphometric Analysis', fontsize=14, fontweight='bold', color='#1a1a1a', y=1.02)
plt.tight_layout()
plt.show()
Library
Matplotlib
Category
Statistical
More Correlogram examples
☕