{"id":29745616,"url":"https://github.com/satvikpraveen/matplotlibmasterpro","last_synced_at":"2026-05-14T12:33:35.976Z","repository":{"id":306345261,"uuid":"1025864932","full_name":"SatvikPraveen/MatplotlibMasterPro","owner":"SatvikPraveen","description":"📷 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.","archived":false,"fork":false,"pushed_at":"2026-03-08T21:34:41.000Z","size":6731,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-09T02:22:15.153Z","etag":null,"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"],"latest_commit_sha":null,"homepage":"","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SatvikPraveen.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-07-25T00:00:59.000Z","updated_at":"2026-03-08T21:34:45.000Z","dependencies_parsed_at":"2025-07-25T06:09:08.681Z","dependency_job_id":"60c80375-d0b5-4c99-ad38-8727eb497237","html_url":"https://github.com/SatvikPraveen/MatplotlibMasterPro","commit_stats":null,"previous_names":["satvikpraveen/matplotlibmasterpro"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/SatvikPraveen/MatplotlibMasterPro","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SatvikPraveen%2FMatplotlibMasterPro","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SatvikPraveen%2FMatplotlibMasterPro/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SatvikPraveen%2FMatplotlibMasterPro/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SatvikPraveen%2FMatplotlibMasterPro/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SatvikPraveen","download_url":"https://codeload.github.com/SatvikPraveen/MatplotlibMasterPro/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SatvikPraveen%2FMatplotlibMasterPro/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33025055,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-13T13:14:54.681Z","status":"online","status_checked_at":"2026-05-14T02:00:06.663Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["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"],"created_at":"2025-07-26T06:16:23.685Z","updated_at":"2026-05-14T12:33:35.970Z","avatar_url":"https://github.com/SatvikPraveen.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 📊 MatplotlibMasterPro\n\n[![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)\n[![Python](https://img.shields.io/badge/Python-3.10%2B-darkgreen.svg)](https://www.python.org/)\n[![Jupyter Notebooks](https://img.shields.io/badge/Jupyter-Notebook-orange.svg)](https://jupyter.org/)\n[![Matplotlib Focused](https://img.shields.io/badge/Matplotlib-100%25-brightgreen.svg)](https://matplotlib.org/)\n[![Project Status](https://img.shields.io/badge/Status-Active-success.svg)](#)\n[![Open Source](https://img.shields.io/badge/Open%20Source-Yes-critical.svg)](#)\n[![Dashboard Ready](https://img.shields.io/badge/Dashboards-Included-blueviolet.svg)](#)\n[![Animations](https://img.shields.io/badge/Animations-MP4/GIF-red.svg)](#)\n[![Streamlit Compatible](https://img.shields.io/badge/Streamlit-Ready-ff4b4b.svg)](#)\n[![Portfolio Project](https://img.shields.io/badge/Use%20Case-Portfolio%20Project-lightgrey.svg)](#)\n[![Contributions](https://img.shields.io/badge/Contributions-Welcome-blue.svg)](#)\n\n---\n\n## 🧠 Project Overview\n\n**MatplotlibMasterPro** is a complete, portfolio-grade project designed to **master data visualization using `matplotlib.pyplot`**.  \nIt’s structured to serve both as a:\n\n- 📘 **Self-paced learning notebook series**\n- 💼 **Professional showcase project**\n\nWhether you’re revisiting fundamentals or creating complex dashboards — this project brings it all together in one place.\n\n---\n\n## 📁 Project Structure\n\n```bash\nMatplotlibMasterPro/\n├── notebooks/               # 📚 Step-by-step concept notebooks (23 total)\n├── scripts/                 # 🐍 Production-ready Python scripts\n├── examples/                # 🚀 Quick copy-paste examples\n├── tests/                   # 🧪 Unit tests for utilities\n├── utils/                   # 🛠️  Plotting utility functions\n│   ├── plot_utils.py        # Line, bar, scatter, histogram helpers\n│   └── theme_utils.py       # Publication-ready themes\n├── docs/                    # 📖 Documentation files\n│   ├── SETUP.md             # Environment setup guide\n│   ├── TROUBLESHOOTING.md   # Common issues and solutions\n│   ├── RESOURCES.md         # Learning materials\n│   ├── RECOMMENDATIONS.md   # Project roadmap\n│   ├── CONTRIBUTING.md      # Contribution guidelines\n│   └── CODE_OF_CONDUCT.md   # Community standards\n├── cheatsheets/             # 📋 Quick-reference syntax guides\n├── datasets/                # 📊 Sample CSV datasets\n├── exports/                 # 💾 Generated plots and dashboards\n├── streamlit_app.py         # 🌐 Streamlit dashboard viewer\n├── activate.sh              # ⚡ Quick venv activation script\n├── requirements.txt         # 📦 Minimal dependencies\n├── requirements_dev.txt     # 🔧 Full dev environment\n└── Dockerfile               # 🐳 Dockerized Jupyter environment\n```\n\n---\n\n## 📚 Notebooks Roadmap\n\n| Notebook                     | Description                                         |\n| ---------------------------- | --------------------------------------------------- |\n| `01_line_plot.ipynb`         | Basics of `plot()`, labels, legend                  |\n| `02_bar_scatter.ipynb`       | Bar charts and scatter plots                        |\n| `03_histogram_pie.ipynb`     | Distributions and pie charts                        |\n| `04_subplots_axes.ipynb`     | Subplotting and axes control                        |\n| `05_customization.ipynb`     | Colors, linestyles, themes                          |\n| `06_advanced_plots.ipynb`    | Log plots, heatmaps, fill areas                     |\n| `07_annotations.ipynb`       | Labels, arrows, text, highlights                    |\n| `08_images_and_grids.ipynb`  | `imshow`, `matshow`, grids                          |\n| `09_interactive.ipynb`       | Widgets, sliders, `%matplotlib notebook`            |\n| `10_export_style.ipynb`      | Save figures, DPI, formats, themes                  |\n| `11_animation.ipynb`         | Animated plots, FuncAnimation, saving MP4/GIF       |\n| `12_stats_distribution.ipynb`| Statistical distributions and plots                 |\n| `13_comparative_plots.ipynb` | Grouped bars, stacked areas, side-by-side views     |\n| `14_colormaps_themes.ipynb`  | Colormaps, gradients, diverging schemes             |\n| `15_timeseries.ipynb`        | Time-series: trends, seasonal cycles                |\n| `16_dashboards.ipynb`        | Multi-panel dashboards using `subplots`, `gridspec` |\n| `17_3d_plots.ipynb`          | 3D scatter, surface, wireframe plots                |\n| `18_statistical_plots.ipynb` | Box plots, violin plots, swarm plots                |\n| `19_error_visualization.ipynb`| Error bars, confidence intervals, fill between     |\n| `20_contour_plots.ipynb`     | Contour, contourf, filled contours, heatmaps        |\n| `21_polar_plots.ipynb`       | Polar coordinates, radial plots, circular data      |\n| `22_composite_plots.ipynb`   | Layered plots, twin axes, broken axes               |\n| `23_inset_zoom.ipynb`        | Inset plots, zoomed views, anchored boxes           |\n\n---\n\n## ✨ Advanced Visualization Features\n\nThis project covers **comprehensive matplotlib capabilities** including:\n\n- � **23 Interactive Notebooks** — From basics to advanced techniques\n- 🐍 **5 Production Scripts** — Real-world automation examples\n- 🚀 **5 Quick Examples** — Copy-paste ready templates\n- 🧪 **80+ Unit Tests** — Professional testing practices\n- 📦 **3D Visualizations** — Surface plots, wireframes, 3D scatter plots\n- 📊 **Statistical Analysis** — Box plots, violin plots, distribution comparisons\n- 📉 **Error Visualization** — Error bars, confidence intervals, uncertainty quantification\n- 🗺️ **Field Representation** — Contour plots, filled contours, heatmaps\n- 🔵 **Polar \u0026 Circular Data** — Radar charts, rose plots, wind roses\n- 🔄 **Multi-Scale Plots** — Twin axes, layered visualizations, broken axes\n- 🔍 **Detail Views** — Inset plots, zoomed views, magnified regions\n- 🎨 **8 Publication Themes** — IEEE, academic, colorblind-friendly palettes\n- 🎬 **Animations** — FuncAnimation, timeline effects, dynamic visualizations\n- 📐 **Complex Layouts** — GridSpec, nested subplots, multi-panel dashboards\n\n---\n\n## 📸 Sample Visualizations\n\nHere are two dashboards from the project:\n\n![🧩 Gridspec Dashboard](exports/dashboards/sales_dashboard_gridspec.png)  \n_Advanced layout using `GridSpec` for flexible placement_\n\u003cbr\u003e\n\n![🪟 Subplots Layout](exports/dashboards/sales_dashboard_subplots_2x2.png)  \n_Subplots with shared axes and tight layout for cleaner visuals_\n\u003cbr\u003e\n\n## 🎞️ Animated Visualizations\n\nHere are animated visualizations exported from the project:\n\n- 🎬 [`product_revenue_bars.mp4`](exports/product_revenue_bars.mp4)  \n  _Animated bar chart showing revenue distribution by product_\n\n- 📈 [`revenue_growth.mp4`](exports/revenue_growth.mp4)  \n  _Revenue growth over time with animated line movement_\n\n- 📊 [`units_revenue_growth.mp4`](exports/units_revenue_growth.mp4)  \n  _Dual-plot animation comparing units sold and revenue growth_\n\n- 🔄 [`revenue_vs_units_scatter.mp4`](exports/revenue_vs_units_scatter.mp4)  \n  _Dynamic scatter plot showing correlation over time_\n\n## 🧪 Datasets Created and Used\n\n| Filename           | Description                                  |\n| ------------------ | -------------------------------------------- |\n| `sales_data.csv`   | Monthly product-wise sales and revenue       |\n| `covid_cases.csv`  | Cumulative COVID-19 cases across U.S. states |\n| `stock_prices.csv` | OHLC \u0026 volume for multiple stock tickers     |\n| `weather_data.csv` | Daily city-level temperature and humidity    |\n\n\u003e All datasets are generated using `pandas` and `numpy`, and stored under [`datasets/`](datasets/).\n\n---\n\n## 🛠️ Utilities\n\nReusable helper functions to accelerate your matplotlib workflow:\n\n- **[`utils/plot_utils.py`](utils/plot_utils.py)** — 20+ functions for common plots (line, bar, scatter, histogram, pie, etc.)\n- **[`utils/theme_utils.py`](utils/theme_utils.py)** — 8 publication-ready themes (dark, minimal, corporate, IEEE, colorblind-friendly, etc.)\n\n---\n\n## 🐍 Production Scripts\n\nReady-to-run Python scripts in [`scripts/`](scripts/):\n\n| Script | Description | Command |\n|--------|-------------|---------|\n| **generate_dashboard.py** | Multi-panel sales dashboard | `python scripts/generate_dashboard.py` |\n| **generate_3d_plots.py** | Batch 3D visualizations | `python scripts/generate_3d_plots.py` |\n| **generate_statistical_plots.py** | Box/violin plots | `python scripts/generate_statistical_plots.py` |\n| **batch_export.py** | Export in PNG/PDF/SVG | `python scripts/batch_export.py` |\n| **create_publication_figures.py** | IEEE/academic figures | `python scripts/create_publication_figures.py` |\n\n**Use Cases:** Automated reporting, batch processing, production pipelines\n\n---\n\n## 🚀 Quick Examples\n\nMinimal, copy-paste ready scripts in [`examples/`](examples/):\n\n| Example | Description | Lines of Code |\n|---------|-------------|---------------|\n| **quick_start.py** | Your first plot | ~10 |\n| **publication_figure.py** | Academic paper-ready | ~25 |\n| **batch_process.py** | Process multiple CSVs | ~30 |\n| **custom_theme_example.py** | Apply themes | ~20 |\n| **animation_example.py** | Simple animation | ~18 |\n\n**Use Cases:** Learning, prototyping, templates for projects\n\n---\n\n## 🧪 Testing\n\nProfessional unit tests in [`tests/`](tests/):\n\n- **test_plot_utils.py** — Tests for plotting functions (50+ tests)\n- **test_theme_utils.py** — Tests for theme utilities (30+ tests)\n\n**Run tests:**\n```bash\npython -m pytest tests/ -v\n```\n\n**With coverage:**\n```bash\npython -m pytest tests/ --cov=utils --cov-report=html\n```\n\n---\n\n## 🧾 Cheatsheets\n\nQuick-reference syntax guides available at:\n\n- [`cheatsheets/matplotlib_cheatsheet.md`](cheatsheets/matplotlib_cheatsheet.md)\n\n---\n\n## 📖 Documentation \u0026 Resources\n\nThis project includes comprehensive documentation to support your learning:\n\n- 📋 **[SETUP.md](docs/SETUP.md)** — Complete environment setup guide with activation instructions\n- 💡 **[RECOMMENDATIONS.md](docs/RECOMMENDATIONS.md)** — Prioritized improvement suggestions and project roadmap\n- 🔧 **[TROUBLESHOOTING.md](docs/TROUBLESHOOTING.md)** — Solutions for common matplotlib issues (backends, fonts, performance, etc.)\n- 📚 **[RESOURCES.md](docs/RESOURCES.md)** — Curated learning resources (courses, books, communities, datasets)\n- 🤝 **[CONTRIBUTING.md](docs/CONTRIBUTING.md)** — Contribution guidelines for the project\n- 📜 **[CODE_OF_CONDUCT.md](docs/CODE_OF_CONDUCT.md)** — Community standards and behavior expectations\n- 🐍 **[scripts/README.md](scripts/README.md)** — Production scripts documentation\n- 🚀 **[examples/README.md](examples/README.md)** — Quick examples documentation\n- 🧪 **[tests/README.md](tests/README.md)** — Testing guide and best practices\n\n---\n\n## 🚀 Getting Started\n\n### **Option 1: Virtual Environment (Recommended)**\n\n1. **Clone the repository:**\n   ```bash\n   git clone https://github.com/SatvikPraveen/MatplotlibMasterPro.git\n   cd MatplotlibMasterPro\n   ```\n\n2. **Use the quick activation script:**\n   ```bash\n   source activate.sh\n   ```\n\n   Or activate manually:\n   ```bash\n   source venv/bin/activate  # macOS/Linux\n   venv\\Scripts\\activate     # Windows\n   ```\n\n3. **Launch JupyterLab:**\n   ```bash\n   jupyter lab\n   ```\n\n4. **Or run production scripts:**\n   ```bash\n   python scripts/generate_dashboard.py\n   python examples/quick_start.py\n   ```\n\n5. **Run tests (optional):**\n   ```bash\n   python -m pytest tests/ -v\n   ```\n\n📖 **For detailed setup instructions, see [SETUP.md](docs/SETUP.md)**  \n💡 **For improvement suggestions, see [RECOMMENDATIONS.md](docs/RECOMMENDATIONS.md)**  \n🔧 **For troubleshooting help, see [TROUBLESHOOTING.md](docs/TROUBLESHOOTING.md)**  \n📚 **For learning resources, see [RESOURCES.md](docs/RESOURCES.md)**\n\n### **Option 2: Docker (Isolated Environment)**\n\nSee the [Dockerized Setup](#-dockerized-setup) section below.\n\n---\n\n## 🌐 Streamlit App\n\nExplore exported dashboards interactively:\n\n```bash\nstreamlit run streamlit_app.py\n```\n\nOr via Docker:\n\n```bash\ndocker build -t matplotlibmasterpro .\ndocker run -p 8501:8501 matplotlibmasterpro\n```\n\n---\n\n## 🐳 Dockerized Setup\n\nRun a fully isolated Jupyter + Streamlit environment with ease.\n\n```bash\n# Build the container\ndocker build -t matplotlibmasterpro .\n\n# Launch Jupyter\ndocker run -p 8888:8888 matplotlibmasterpro\n```\n\n\u003e Tokenless access enabled by default. Use `--rm -d` to run in background.\n\n---\n\n## 🚀 Future Enhancements\n\n- [x] Streamlit integration for dashboard browsing\n- [x] JupyterLab with Docker\n- [x] Advanced 3D visualizations\n- [x] Statistical plotting techniques\n- [x] Publication-ready themes\n- [x] Comprehensive troubleshooting guide\n- [x] Curated learning resources\n- [x] Production-ready Python scripts\n- [x] Quick copy-paste examples\n- [x] Unit tests with pytest\n- [ ] PDF report export\n- [ ] Pip-installable library version\n- [ ] Interactive Plotly/Bokeh integrations\n- [ ] Real-world case studies\n- [ ] CI/CD pipeline\n\n---\n\n## 💼 License\n\nThis 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.\n\n---\n\n## 🙌 Contributing\n\nWant to contribute?\n\n- ✅ Fork the repo\n- 🔧 Create a feature branch\n- 🔁 Submit a PR with your improvements\n- 🐛 Open issues for bugs or suggestions\n\n---\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsatvikpraveen%2Fmatplotlibmasterpro","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsatvikpraveen%2Fmatplotlibmasterpro","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsatvikpraveen%2Fmatplotlibmasterpro/lists"}