Skip to content

Commit

Permalink
domain\
Browse files Browse the repository at this point in the history
  • Loading branch information
Amarnath-Rao committed Sep 22, 2023
1 parent d93dbdc commit 7a072ad
Show file tree
Hide file tree
Showing 17 changed files with 135 additions and 9,958 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/env-checks.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# This workflow builds the workshop environment on Mac, Linux, and Windows for
# multiple versions of Python to confirm it can be properly installed.
#
# Author: Stefanie Molin
# Author: Amarnath Rao

name: Env Build

Expand Down
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
MIT License

Copyright (c) 2021-2023 Stefanie Molin
Copyright (c) 2021-2023 Amarnath Rao

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
19 changes: 4 additions & 15 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,13 @@
# Beyond the Basics: Data Visualization in Python

[![Nbviewer](https://img.shields.io/badge/render-nbviewer-lightgrey?logo=jupyter)](https://nbviewer.jupyter.org/github/stefmolin/python-data-viz-workshop/tree/main/) [![Env Build Workflow Status](https://img.shields.io/github/actions/workflow/status/stefmolin/python-data-viz-workshop/env-checks.yml?label=env%20build&logo=github&logoColor=white)](https://github.com/stefmolin/python-data-viz-workshop/actions/workflows/env-checks.yml) ![GitHub repo size](https://img.shields.io/github/repo-size/stefmolin/python-data-viz-workshop?logo=git&logoColor=white) [![View slides in browser](https://img.shields.io/badge/view-slides-orange?logo=reveal.js&logoColor=white)](https://stefmolin.github.io/python-data-viz-workshop/slides/html/workshop.slides.html#/)
[![Nbviewer](https://img.shields.io/badge/render-nbviewer-lightgrey?logo=jupyter)](https://nbviewer.jupyter.org/github/Amarnath-Rao/python-data-viz-workshop/tree/main/) [![Env Build Workflow Status](https://img.shields.io/github/actions/workflow/status/Amarnath-Rao/python-data-viz-workshop/env-checks.yml?label=env%20build&logo=github&logoColor=white)](https://github.com/Amarnath-Rao/python-data-viz-workshop/actions/workflows/env-checks.yml) ![GitHub repo size](https://img.shields.io/github/repo-size/Amarnath-Rao/python-data-viz-workshop?logo=git&logoColor=white) [![View slides in browser](https://img.shields.io/badge/view-slides-orange?logo=reveal.js&logoColor=white)](https://amarnath-rao.github.io/python-data-viz-workshop/slides/html/workshop.slides.html#/)

The human brain excels at finding patterns in visual representations, which is why data visualizations are essential to any analysis. Done right, they bridge the gap between those analyzing the data and those consuming the analysis. However, learning to create impactful, aesthetically-pleasing visualizations can often be challenging. This session will equip you with the skills to make customized visualizations for your data using Python.

While there are many plotting libraries to choose from, the prolific Matplotlib library is always a great place to start. Since various Python data science libraries utilize Matplotlib under the hood, familiarity with Matplotlib itself gives you the flexibility to fine tune the resulting visualizations (e.g., add annotations, animate, etc.). This session will also introduce interactive visualizations using HoloViz, which provides a higher-level plotting API capable of using Matplotlib and Bokeh (a Python library for generating interactive, JavaScript-powered visualizations) under the hood.

## Workshop Outline

This is a workshop on data visualization in Python first delivered at [ODSC West 2021](https://odsc.com/speakers/introduction-to-data-visualization-in-python/) and subsequently at [ODSC East 2022](https://odsc.com/speakers/introduction-to-data-visualization-in-python/), [PyCon Italia 2022](https://pycon.it/en/talk/beyond-the-basics-data-visualization-in-python?day=2022-06-03), [ODSC Europe 2022](https://odsc.com/speakers/introduction-to-data-visualization-in-python/), [EuroPython 2022](https://ep2022.europython.eu/session/beyond-the-basics-data-visualization-in-python), [ODSC West 2022](https://odsc.com/speakers/introduction-to-data-visualization-in-python/), the Toronto Machine Learning Summit (TMLS) 2022, [PyCon US 2023](https://us.pycon.org/2023/schedule/presentation/17/), [ODSC East 2023](https://odsc.com/speakers/introduction-to-data-visualization-in-python/), and [PyCon Italia 2023](https://pycon.it/en/event/beyond-the-basics-data-visualization-in-python-2). It's divided into the following sections:

### Section 1: Getting Started With Matplotlib
We will begin by familiarizing ourselves with Matplotlib. Moving beyond the default options, we will explore how to customize various aspects of our visualizations. By the end of this section, you will be able to generate plots using the Matplotlib API directly, as well as customize the plots that libraries like pandas and Seaborn create for you.
Expand All @@ -23,7 +22,7 @@ When exploring our data, interactive visualizations can provide the most value.
---

## Prerequisites
You should have basic knowledge of Python and be comfortable working in Jupyter Notebooks. Check out [this notebook](https://github.com/stefmolin/Hands-On-Data-Analysis-with-Pandas-2nd-edition/blob/master/ch_01/python_101.ipynb) for a crash course in Python or work through the [official Python tutorial](https://docs.python.org/3/tutorial/) for a more formal introduction. The environment we will use for this workshop comes with JupyterLab, which is pretty intuitive, but be sure to familiarize yourself [using notebooks in JupyterLab](https://jupyterlab.readthedocs.io/en/latest/user/notebook.html) and [additional functionality in JupyterLab](https://dzone.com/articles/getting-started-with-jupyterlab). In addition, a basic understanding of pandas will be beneficial, but is not required; reviewing the first section of my [pandas workshop](https://github.com/stefmolin/pandas-workshop) will be sufficient.
You should have basic knowledge of Python and be comfortable working in Jupyter Notebooks. for a crash course in Python or work through the [official Python tutorial](https://docs.python.org/3/tutorial/) for a more formal introduction. The environment we will use for this workshop comes with JupyterLab, which is pretty intuitive, but be sure to familiarize yourself [using notebooks in JupyterLab](https://jupyterlab.readthedocs.io/en/latest/user/notebook.html) and [additional functionality in JupyterLab](https://dzone.com/articles/getting-started-with-jupyterlab).

---

Expand Down Expand Up @@ -76,7 +75,7 @@ You can work through the notebooks locally or in your browser. Pick the installa

#### GitHub Codespaces

[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/stefmolin/python-data-viz-workshop)
[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/Amarnath-Rao/python-data-viz-workshop)

The [GitHub Codespaces](https://github.com/features/codespaces) setup provides a pre-configured machine accessible via your browser. You will need a GitHub account and available quota (all users get more than enough free monthly quota to be able to run this workshop). Note that this will take a while to build. It's recommended that you click the badge above to build the codespace in advance of the workshop and then [stop the codespace](https://docs.github.com/en/codespaces/developing-in-codespaces/stopping-and-starting-a-codespace) until the workshop, at which point you can simply resume and pick up where you left off.
Expand All @@ -102,17 +101,7 @@ Note that if you want to save your changes, you will need to fork the repository

<img width="400px" src="./media/resume-codespace.png" alt="resuming a codespace">

#### Binder

[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/stefmolin/python-data-viz-workshop/main?urlpath=lab/tree/notebooks)

Depending on server availability, you can use [this](https://mybinder.org/v2/gh/stefmolin/python-data-viz-workshop/main?urlpath=lab) Binder environment, which does not require the creation of a GitHub account. **There is no guarantee that you will be able to access this during the workshop.**

---

## About the Author
Stefanie Molin ([@stefmolin](https://github.com/stefmolin)) is a software engineer and data scientist at Bloomberg in New York City, where she tackles tough problems in information security, particularly those revolving around data wrangling/visualization, building tools for gathering data, and knowledge sharing. She is also the author of [Hands-On Data Analysis with Pandas](https://www.amazon.com/dp/1800563450/), which is currently in its second edition and has been translated into Korean. She holds a bachelor’s of science degree in operations research from Columbia University's Fu Foundation School of Engineering and Applied Science, as well as a master’s degree in computer science, with a specialization in machine learning, from Georgia Tech. In her free time, she enjoys traveling the world, inventing new recipes, and learning new languages spoken among both people and computers.


## Related Content
All examples herein were developed exclusively for this workshop. [Hands-On Data Analysis with Pandas](https://www.amazon.com/dp/1800563450/) contains additional examples and exercises, as does [this](https://medium.com/@stefaniemolin/how-to-pivot-and-plot-data-with-pandas-9450939fcf8) blog post and [this](https://github.com/stefmolin/pandas-workshop) workshop on pandas.
All examples herein were developed exclusively for this workshop. [Hands-On Data Analysis with Pandas](https://www.amazon.com/dp/1800563450/) contains additional examples and exercises
7 changes: 0 additions & 7 deletions notebooks/0-check_your_env.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -40,13 +40,6 @@
"from check_env import run_env_check\n",
"run_env_check()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"*Note: Adapted from Andreas Mueller's [`check_env.ipynb` notebook](https://github.com/amueller/ml-workshop-1-of-4/blob/master/check_env.ipynb).*"
]
}
],
"metadata": {
Expand Down
2 changes: 1 addition & 1 deletion notebooks/1-getting_started_with_matplotlib.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
"source": [
"**NOTE: GitHub doesn't render the SVG plots in this notebook completely. View this locally or in nbviewer for best results.**\n",
"\n",
"[![Nbviewer](https://img.shields.io/badge/render-nbviewer-lightgrey?logo=jupyter)](https://nbviewer.jupyter.org/github/stefmolin/python-data-viz-workshop/blob/main/notebooks/1-getting_started_with_matplotlib.ipynb) [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/stefmolin/python-data-viz-workshop/main?urlpath=lab/tree/notebooks/1-getting_started_with_matplotlib.ipynb) [![View slides in browser](https://img.shields.io/badge/view-slides-orange?logo=reveal.js&logoColor=white)](https://stefmolin.github.io/python-data-viz-workshop/slides/html/workshop.slides.html#/section-1)\n",
" [![View slides in browser](https://img.shields.io/badge/view-slides-orange?logo=reveal.js&logoColor=white)](https://amarnath-rao.github.io/python-data-viz-workshop/slides/html/workshop.slides.html#/section-1)\n",
"\n",
"---"
]
Expand Down
Loading

0 comments on commit 7a072ad

Please sign in to comment.