https://github.com/satvikpraveen/matplotlibmasterpro
MatplotlibMasterPro is a complete, portfolio-ready project to master data visualization using matplotlib. Includes 16 notebooks, real datasets, exportable plots, custom themes, Streamlit dashboard, and Docker support. Ideal for learners and data professionals.
https://github.com/satvikpraveen/matplotlibmasterpro
charts custom-plots dashboarding data-analysis data-science data-visualization educational-project interactive-visualizations jupyter-notebook matplotlib notebooks open-source plotting portfolio-project python python-utilities reproducible-research subplots time-series-analysis visualization-tools
Last synced: 3 months ago
JSON representation
MatplotlibMasterPro is a complete, portfolio-ready project to master data visualization using matplotlib. Includes 16 notebooks, real datasets, exportable plots, custom themes, Streamlit dashboard, and Docker support. Ideal for learners and data professionals.
- Host: GitHub
- URL: https://github.com/satvikpraveen/matplotlibmasterpro
- Owner: SatvikPraveen
- License: mit
- Created: 2025-07-25T00:00:59.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2025-07-25T00:42:54.000Z (5 months ago)
- Last Synced: 2025-07-25T06:09:03.091Z (5 months ago)
- Topics: charts, custom-plots, dashboarding, data-analysis, data-science, data-visualization, educational-project, interactive-visualizations, jupyter-notebook, matplotlib, notebooks, open-source, plotting, portfolio-project, python, python-utilities, reproducible-research, subplots, time-series-analysis, visualization-tools
- Language: Jupyter Notebook
- Homepage:
- Size: 6.35 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# π MatplotlibMasterPro
[](https://www.gnu.org/licenses/gpl-3.0)
[](https://www.python.org/)
[](https://jupyter.org/)
[](https://matplotlib.org/)
[](#)
[](#)
[](#)
[](#)
[](#)
[](#)
[](#)
---
## π§ Project Overview
**MatplotlibMasterPro** is a complete, portfolio-grade project designed to **master data visualization using `matplotlib.pyplot`**.
Itβs structured to serve both as a:
- π **Self-paced learning notebook series**
- πΌ **Professional showcase project**
Whether youβre revisiting fundamentals or creating complex dashboards β this project brings it all together in one place.
---
## π Project Structure
```bash
MatplotlibMasterPro/
βββ notebooks/ # Step-by-step concept notebooks
βββ utils/ # Plotting utility scripts
βββ cheatsheets/ # Markdown/PDF visual guides
βββ datasets/ # Toy + Realistic datasets
βββ exports/ # Exported plots and dashboards
βββ streamlit_app.py # Streamlit dashboard viewer
βββ requirements.txt # Minimal dependencies to run the project
βββ requirements_dev.txt # Full dev environment
βββ Dockerfile # Dockerized Jupyter environment
βββ .dockerignore # Docker ignore rules
βββ .gitignore # Git ignore rules
βββ README.md
βββ LICENSE
```
---
## π Notebooks Roadmap
| Notebook | Description |
| ---------------------------- | --------------------------------------------------- |
| `01_line_plot.ipynb` | Basics of `plot()`, labels, legend |
| `02_bar_scatter.ipynb` | Bar charts and scatter plots |
| `03_histogram_pie.ipynb` | Distributions and pie charts |
| `04_subplots_axes.ipynb` | Subplotting and axes control |
| `05_customization.ipynb` | Colors, linestyles, themes |
| `06_advanced_plots.ipynb` | Log plots, heatmaps, fill areas |
| `07_annotations.ipynb` | Labels, arrows, text, highlights |
| `08_images_and_grids.ipynb` | `imshow`, `matshow`, grids |
| `09_interactive.ipynb` | Widgets, sliders, `%matplotlib notebook` |
| `10_export_style.ipynb` | Save figures, DPI, formats, themes |
| `11_composite_plots.ipynb` | Layered plots, twin axes, broken axes |
| `12_inset_zoom.ipynb` | Inset plots, zoomed views, anchored boxes |
| `13_comparative_plots.ipynb` | Grouped bars, stacked areas, side-by-side views |
| `14_colormaps_themes.ipynb` | Colormaps, gradients, diverging schemes |
| `15_timeseries.ipynb` | Time-series: trends, seasonal cycles |
| `16_dashboards.ipynb` | Multi-panel dashboards using `subplots`, `gridspec` |
---
## πΈ Sample Visualizations
Here are two dashboards from the project:

_Advanced layout using `GridSpec` for flexible placement_

_Subplots with shared axes and tight layout for cleaner visuals_
## ποΈ Animated Visualizations
Here are animated visualizations exported from the project:
- π¬ [`product_revenue_bars.mp4`](exports/product_revenue_bars.mp4)
_Animated bar chart showing revenue distribution by product_
- π [`revenue_growth.mp4`](exports/revenue_growth.mp4)
_Revenue growth over time with animated line movement_
- π [`units_revenue_growth.mp4`](exports/units_revenue_growth.mp4)
_Dual-plot animation comparing units sold and revenue growth_
- π [`revenue_vs_units_scatter.mp4`](exports/revenue_vs_units_scatter.mp4)
_Dynamic scatter plot showing correlation over time_
## π§ͺ Datasets Created and Used
| Filename | Description |
| ------------------ | -------------------------------------------- |
| `sales_data.csv` | Monthly product-wise sales and revenue |
| `covid_cases.csv` | Cumulative COVID-19 cases across U.S. states |
| `stock_prices.csv` | OHLC & volume for multiple stock tickers |
| `weather_data.csv` | Daily city-level temperature and humidity |
> All datasets are generated using `pandas` and `numpy`, and stored under [`datasets/`](datasets/).
---
## π οΈ Utilities
- `utils/plot_utils.py` β Custom plot wrappers (comparative, themed, exportable)
- `utils/theme_utils.py` β Reusable themes like `dark`, `minimal`, and `corporate`
---
## π§Ύ Cheatsheets
Quick-reference syntax guides available at:
- [`cheatsheets/matplotlib_cheatsheet.md`](cheatsheets/matplotlib_cheatsheet.md)
---
## π Streamlit App
Explore exported dashboards interactively:
```bash
streamlit run streamlit_app.py
```
Or via Docker:
```bash
docker build -t matplotlibmasterpro .
docker run -p 8501:8501 matplotlibmasterpro
```
---
## π³ Dockerized Setup
Run a fully isolated Jupyter + Streamlit environment with ease.
```bash
# Build the container
docker build -t matplotlibmasterpro .
# Launch Jupyter
docker run -p 8888:8888 matplotlibmasterpro
```
> Tokenless access enabled by default. Use `--rm -d` to run in background.
---
## π Future Enhancements
- [x] Streamlit integration for dashboard browsing
- [x] JupyterLab with Docker
- [ ] PDF report export
- [ ] Pip-installable library version
---
## πΌ 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.
---
## π Contributing
Want to contribute?
- β
Fork the repo
- π§ Create a feature branch
- π Submit a PR with your improvements
- π Open issues for bugs or suggestions
---