An open API service indexing awesome lists of open source software.

https://github.com/satvikpraveen/seabornmasterpro

🎨 SeabornMasterPro is a comprehensive, modular project to master Seaborn for data visualization. Includes themed utilities, advanced plotting notebooks, dashboards, time series, Streamlit app, and Docker support β€” perfect for learners, analysts, and open-source enthusiasts.
https://github.com/satvikpraveen/seabornmasterpro

categorical-plots correlation-heatmap custom-theme data-visualization docker interactive-dashboard jupyter-notebook matplotlib modular-code multi-panel-layouts open-source-project pandas plot-utils project-structure python reproducible-research seaborn streamlit time-series-visualization utility-functions

Last synced: 2 months ago
JSON representation

🎨 SeabornMasterPro is a comprehensive, modular project to master Seaborn for data visualization. Includes themed utilities, advanced plotting notebooks, dashboards, time series, Streamlit app, and Docker support β€” perfect for learners, analysts, and open-source enthusiasts.

Awesome Lists containing this project

README

          

# 🎨 SeabornMasterPro

[![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)
[![Python](https://img.shields.io/badge/Python-3.10%2B-darkgreen.svg)](https://www.python.org/)
[![Jupyter Notebooks](https://img.shields.io/badge/Jupyter-Notebook-orange.svg)](https://jupyter.org/)
[![Seaborn Mastery](https://img.shields.io/badge/Seaborn-100%25-brightgreen.svg)](https://seaborn.pydata.org/)
[![Docker Ready](https://img.shields.io/badge/Docker-Ready-blueviolet.svg)](https://www.docker.com/)
[![Streamlit App](https://img.shields.io/badge/Streamlit-Dashboard-red.svg)](https://streamlit.io/)
[![PRs Welcome](https://img.shields.io/badge/PRs-Welcome-lightgrey.svg)](https://github.com/SatvikPraveen/SeabornMasterPro/pulls)
[![Last Commit](https://img.shields.io/github/last-commit/SatvikPraveen/SeabornMasterPro.svg)](https://github.com/SatvikPraveen/SeabornMasterPro/commits)

---

## πŸ“Œ Overview

**SeabornMasterPro** is an open-source, end-to-end visualization mastery project built to help you **learn, recall, and reuse** Seaborn effectively β€” from plotting basics to dashboard-level visual storytelling.

🎯 Ideal for:

- Learners who want structured notebooks and projects
- Practitioners who want reusable utilities and themes
- Professionals who need dashboards, cheatsheets, and reproducible setups

---

## πŸ“½οΈ Project Preview

Here’s a glimpse into the Seaborn visualizations and dashboards created in this project:

### 🧭 Streamlit EDA Dashboard

> Powered by `streamlit_app.py`, this dashboard provides real-time interaction with synthetic datasets.

![Streamlit Dashboard Preview](exports/04_dashboards/campaign_facetgrid_scatter.png)

---

### πŸ“Š Real-World Visual Storytelling

> Plots generated using `notebooks/05_realworld_EDA.ipynb` and reusable functions from `plot_utils.py`.

![E-Commerce EDA Preview](exports/05_eda/ecommerce_correlation_heatmap.png)

---

## 🧠 Learning Outcomes

By working through this project, you'll be able to:

- πŸ“Š Visualize structured data with Seaborn’s full plotting suite
- 🧱 Build custom dashboards using Streamlit and save visual reports
- ♻️ Reuse plot components using `plot_utils.py`- 🐍 Deploy production-ready scripts with proper error handling- πŸ“¦ Package everything in a container-ready environment

---

## 🧱 Project Structure

```bash
SeabornMasterPro/
β”œβ”€β”€ notebooks/ # Comprehensive coverage (10 notebooks)
β”‚ β”œβ”€β”€ 01_setup_and_basics.ipynb
β”‚ β”œβ”€β”€ 02_distributions_relationships.ipynb
β”‚ β”œβ”€β”€ 03_categorical_matrixplots.ipynb
β”‚ β”œβ”€β”€ 04_multi_custom_dashboards.ipynb
β”‚ β”œβ”€β”€ 05_realworld_EDA.ipynb
β”‚ β”œβ”€β”€ 06_timeseries_lineplots.ipynb
β”‚ β”œβ”€β”€ 07_figure_level_functions.ipynb
β”‚ β”œβ”€β”€ 08_advanced_categorical.ipynb
β”‚ β”œβ”€β”€ 09_styling_customization.ipynb
β”‚ └── 10_statistical_parameters.ipynb
β”œβ”€β”€ examples/ # Production-ready Python scripts (7 scripts)
β”‚ β”œβ”€β”€ basic_workflow.py
β”‚ β”œβ”€β”€ production_dashboard.py
β”‚ β”œβ”€β”€ custom_styling.py
β”‚ β”œβ”€β”€ statistical_viz.py
β”‚ β”œβ”€β”€ batch_processing.py
β”‚ β”œβ”€β”€ publication_figures.py
β”‚ β”œβ”€β”€ reusable_template.py
β”‚ └── README.md
β”œβ”€β”€ utils/ # Enhanced utility functions
β”‚ β”œβ”€β”€ __init__.py
β”‚ └── plot_utils.py # 12 functions: themes, export, palettes, grids, annotations
β”œβ”€β”€ scripts/ # Dataset generators and helpers
β”‚ └── generate_datasets.py
β”œβ”€β”€ datasets/ # Synthetic datasets (auto-generated)
β”‚ β”œβ”€β”€ ecommerce_data.csv
β”‚ β”œβ”€β”€ employee_data.csv
β”‚ β”œβ”€β”€ marketing_campaign.csv
β”‚ β”œβ”€β”€ sales_data.csv
β”‚ β”œβ”€β”€ student_scores.csv
β”‚ └── web_traffic.csv
β”œβ”€β”€ exports/ # Saved visuals for all 10 notebooks
β”‚ β”œβ”€β”€ 01_setup/ ... 06_timeseries/
β”‚ β”œβ”€β”€ 07_figure_level/
β”‚ β”œβ”€β”€ 08_categorical/
β”‚ β”œβ”€β”€ 09_styling/
β”‚ └── 10_statistical/
β”œβ”€β”€ docs/ # Comprehensive documentation
β”‚ β”œβ”€β”€ best_practices.md
β”‚ β”œβ”€β”€ plot_comparison.md
β”‚ β”œβ”€β”€ troubleshooting.md
β”‚ └── feature_matrix.md
β”œβ”€β”€ tests/ # Testing infrastructure
β”‚ β”œβ”€β”€ __init__.py
β”‚ └── test_plot_utils.py
β”œβ”€β”€ .github/ # GitHub templates and workflows
β”‚ β”œβ”€β”€ workflows/
β”‚ β”‚ └── test.yml
β”‚ β”œβ”€β”€ ISSUE_TEMPLATE/
β”‚ └── PULL_REQUEST_TEMPLATE.md
β”œβ”€β”€ cheatsheets/ # Markdown cheatsheets
β”‚ └── seaborn_cheatsheet.md
β”œβ”€β”€ streamlit_app.py # Interactive dashboard (all 10 notebooks)
β”œβ”€β”€ setup.py # Package installation
β”œβ”€β”€ pytest.ini # Test configuration
β”œβ”€β”€ requirements.txt # Minimal dependencies
β”œβ”€β”€ requirements_dev.txt # Full dev environment
β”œβ”€β”€ Dockerfile # Container setup
β”œβ”€β”€ .dockerignore
β”œβ”€β”€ .gitignore
β”œβ”€β”€ README.md
└── LICENSE
```

---

## 🌟 Features

- πŸ“˜ **10 comprehensive notebooks** covering all Seaborn functionality
- οΏ½ **7 production-ready Python scripts** with CLI, error handling, and logging
- οΏ½πŸ“Š **100% Seaborn coverage**: All 30+ core functions including `relplot`, `displot`, `catplot`, `jointplot`, `lmplot`, `FacetGrid`, and more
- 🎯 **Figure-level vs Axes-level** paradigm explained in depth
- πŸ“Š **Advanced categorical plots**: `barplot` with custom estimators, statistical comparisons
- 🎨 **Styling mastery**: Color theory, palettes (sequential/diverging/qualitative), themes
- πŸ“ **Statistical parameters**: Deep dive into `estimator` and `errorbar` options
- ♻️ **Enhanced utilities**: 12 reusable functions in `plot_utils.py`
- πŸ“š **Comprehensive docs**: Best practices, plot comparison guide, troubleshooting, feature matrix
- πŸ§ͺ **Testing infrastructure**: pytest with CI/CD via GitHub Actions
- πŸ“ Exports saved with `save_fig()` into logical folders
- πŸ—‚οΈ Cheatsheet in Markdown for quick revision
- 🌐 Streamlit dashboard to explore all visualizations interactively
- 🐳 Docker support for full reproducibility
- πŸ“¦ **Pip-installable**: `pip install -e .`

---

## βœ… Mastery Checklist

- [x] Setup environment and install dependencies
- [x] Master Seaborn basics, distributions, relationships
- [x] Learn categorical & matrix visualizations
- [x] Build dashboards and multi-panel plots
- [x] Analyze real-world synthetic datasets
- [x] Master figure-level functions (relplot, displot, catplot, lmplot, jointplot)
- [x] Understand axes-level vs figure-level paradigm
- [x] Learn advanced categorical plots (barplot with custom estimators)
- [x] Master styling and customization (themes, palettes, color theory)
- [x] Understand statistical parameters (estimator, errorbar options)
- [x] Use `.pipe()` and enhanced `plot_utils.py` for reusability
- [x] Run comprehensive tests with pytest
- [x] Explore all visualizations via Streamlit dashboard
- [x] Run everything inside Docker for reproducibility

---

## πŸ”§ Setup Instructions

### ▢️ Install Requirements

```bash
pip install -r requirements.txt
```

Or using Conda:

```bash
conda create -n seabornpro python=3.10
conda activate seabornpro
pip install -r requirements.txt
```

---

## 🐳 Run in Docker (JupyterLab)

```bash
docker build -t seaborn-masterpro .
docker run -p 8890:8888 -p 8501:8501 -v $(pwd):/app -d seaborn-masterpro
```

You can now open JupyterLab in your browser at:
πŸ”— [http://localhost:8890](http://localhost:8890)

> The container disables Jupyter token/password prompts for local ease.

---

## πŸ“Š Launch Streamlit Dashboard

```bash
streamlit run streamlit_app.py
```

Then visit:
πŸ”— [http://localhost:8501](http://localhost:8501)

---

## 🐍 Run Production Scripts

```bash
# Navigate to examples directory
cd examples

# Run basic workflow
python basic_workflow.py

# Create production dashboard
python production_dashboard.py --format pdf

# Generate publication figures
python publication_figures.py --size journal_double --dpi 300

# Batch process all datasets
python batch_processing.py --parallel

# See all options for any script
python reusable_template.py --help
```

πŸ“š **See [examples/README.md](examples/README.md) for complete documentation on all 7 production scripts**

---

## πŸ” Extend This Repo

Want to take this further?

- [ ] Add Plotly/Altair interactive options
- [ ] Create animated visualizations
- [ ] Create `seaborn_themes.py` presets for custom themes
- [ ] Add more interactive controls to Streamlit dashboard
- [ ] Add benchmarking and performance comparisons
- [ ] Create video tutorials for each notebook

---

## 🧠 Learn by Doing

Each notebook is carefully structured with:

- βœ… Concepts grouped by theme
- βœ… Code + plots + comments inline
- βœ… Modular reusability via `plot_utils.py`
- βœ… Dataset links and exports
- βœ… Time-based, categorical, and real-world examples

---

## πŸ“Œ Topics Covered

### Core Notebooks
- **01**: Setup and Seaborn basics
- **02**: Distributions and pairwise relationships
- **03**: Categorical plots and matrix visualizations
- **04**: Multi-panel layouts and custom dashboards
- **05**: Real-world EDA with Titanic & Marketing Campaign
- **06**: Advanced time series (multi-series, confidence intervals, seasonality)

### Advanced Notebooks
- **07**: Figure-level functions (relplot, lmplot, jointplot, displot)
- **08**: Advanced categorical plots (barplot with custom estimators)
- **09**: Styling & customization (color theory, palettes, themes)
- **10**: Statistical parameters (estimator, errorbar deep dive)

### Documentation
- Best practices for data visualization
- Plot comparison and decision guide
- Troubleshooting common issues
- Complete feature matrix and coverage map

---

## 🎯 Who Is This For?

| Level | Use Case |
| --------------- | ------------------------------- |
| βœ… Beginner | Learn Seaborn from scratch |
| βœ… Intermediate | Build reusable pipelines |
| βœ… Advanced | Automate dashboards with Docker |

---

## πŸ”— Related Projects

- 🧠 [NumPyMasterPro](https://github.com/SatvikPraveen/NumPyMasterPro) β€” Deep dive into NumPy fundamentals
- 🐼 [PandasPlayground](https://github.com/SatvikPraveen/PandasPlayground) β€” Data cleaning and EDA workflows

---

## πŸ“„ License

This project is licensed under the [GNU General Public License v3.0](https://www.gnu.org/licenses/gpl-3.0). See the [LICENSE](./LICENSE) file for more details.

---

## πŸ™Œ Acknowledgements

- [Seaborn](https://seaborn.pydata.org/)
- [Matplotlib](https://matplotlib.org/)
- [Streamlit](https://streamlit.io/)
- [Python](https://www.python.org/)

---

## ✨ Author

Made with πŸ’™ by [Satvik Praveen](https://github.com/SatvikPraveen)

---