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.
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
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 |
Here are two dashboards from the project:
Advanced layout using GridSpec
for flexible placement
Subplots with shared axes and tight layout for cleaner visuals
Here are animated visualizations exported from the project:
-
π¬
product_revenue_bars.mp4
Animated bar chart showing revenue distribution by product -
π
revenue_growth.mp4
Revenue growth over time with animated line movement -
π
units_revenue_growth.mp4
Dual-plot animation comparing units sold and revenue growth -
π
revenue_vs_units_scatter.mp4
Dynamic scatter plot showing correlation over time
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
andnumpy
, and stored underdatasets/
.
utils/plot_utils.py
β Custom plot wrappers (comparative, themed, exportable)utils/theme_utils.py
β Reusable themes likedark
,minimal
, andcorporate
Quick-reference syntax guides available at:
Explore exported dashboards interactively:
streamlit run streamlit_app.py
Or via Docker:
docker build -t matplotlibmasterpro .
docker run -p 8501:8501 matplotlibmasterpro
Run a fully isolated Jupyter + Streamlit environment with ease.
# 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.
- Streamlit integration for dashboard browsing
- JupyterLab with Docker
- PDF report export
- Pip-installable library version
This project is licensed under the GNU General Public License v3.0. See the LICENSE file for more details.
Want to contribute?
- β Fork the repo
- π§ Create a feature branch
- π Submit a PR with your improvements
- π Open issues for bugs or suggestions