This repository contains an exploratory data analysis and a collection of Seaborn visualizations for the Palmer Penguins dataset. The goal is to explore relationships between morphological features (bill length, bill depth, flipper length, body mass) across penguin species and islands using clear, reproducible plots.
penguins_visuals.ipynb β notebook containing code, results, and markdown explanations.
requirements.txt β Python package dependencies.
README.md β this file.
Palmer Penguins is a small, well-known dataset used for teaching data visualization and basic statistics. It contains measurements for three penguin species β Adelie, Chinstrap, and Gentoo β collected from several islands in the Palmer Archipelago, Antarctica.
Key columns used in this project:
species β penguin species (Adelie, Chinstrap, Gentoo)
island β island of sampling
bill_length_mm β bill length in millimeters
bill_depth_mm β bill depth in millimeters
flipper_length_mm β flipper length in millimeters
body_mass_g β body mass in grams
sex β penguin sex
Below are all the plots used in this project, grouped by their purpose and accompanied by short explanations.
Histogram (sns.histplot) Shows frequency distribution of continuous variables like bill length or body mass. β Helps identify the shape (normal, skewed) of data distributions.
Kernel Density Estimate (KDE) Plot (sns.kdeplot) Smooth curve showing the probability density of a variable. β Useful for comparing overlapping distributions between species.
Rug Plot (sns.rugplot) Displays individual data points along an axis. β Adds detail to KDE or histogram plots.
Strip Plot (sns.stripplot) Plots individual data points for categorical variables. β Great for small datasets; shows all observations.
Swarm Plot (sns.swarmplot) Similar to strip plot but automatically adjusts points to avoid overlap. β Shows exact data distribution per category.
Box Plot (sns.boxplot) Summarizes data with median, quartiles, and outliers. β Ideal for comparing numeric variables across species.
Violin Plot (sns.violinplot) Combines boxplot and KDE β shows both summary stats and distribution shape. β Provides richer detail about the data spread.
Bar Plot (sns.barplot) Displays mean (with optional confidence interval) for categorical variables. β Simple way to compare group averages.
Scatter / Regression Plot (sns.regplot or sns.lmplot) Shows linear relationship between two numeric variables. β Includes regression line and confidence interval.
Line Plot (sns.lineplot) Plots data trends over continuous variables. β Useful for showing relationships or time-based patterns.
Joint Plot (sns.jointplot) Combines scatter and histogram/KDE plots in one figure. β Great for showing correlation + marginal distributions.
Pair Plot (sns.pairplot) Shows pairwise relationships for all numeric variables in the dataset. β Provides an overall EDA (exploratory data analysis) snapshot.
Pair Grid (sns.PairGrid) Customizable version of pairplot allowing more control over plot types on each axis. β Allows mixing scatter, KDE, or regression plots in the same grid.
Heatmap (sns.heatmap) Displays correlations between numeric variables using color intensity. β Quick way to find strongly related features.
Python 3.x
Seaborn β for statistical visualizations
Matplotlib β base plotting library
Pandas β data manipulation and loading
Jupyter Notebook / VS Code β for writing and visualizing code