Data visualization in Python: charts people understand

A free course on choosing the right chart and building it well with matplotlib, seaborn and Plotly, from exploration to a shared report

8 ratings 4,590 students Sample

Created by Priya Raman

  • Updated September 2026
  • English
  • All levels

What you will learn

  • Choose an appropriate chart type for comparisons, trends, distributions and relationships
  • Build and fully customise charts with matplotlib's figure and axes interface
  • Create exploratory statistical charts quickly with seaborn
  • Use colour, labels and annotations to guide the reader
  • Replace cluttered charts with small multiples
  • Make shareable interactive charts with Plotly

Course content

5 sections, 24 lessons, 3h 50m total

Principles and first charts 5 lessons · 50 min
  • Video: What makes a chart good Preview 8 min
  • Article: Setting up and the anatomy of a figure Preview 12 min
  • Article: Choosing the right chart 13 min
  • Article: Colour with a purpose 12 min
  • Quiz: Check your understanding 5 min
Exploring data with seaborn 4 lessons · 41 min
  • Video: seaborn basics and tidy data 11 min
  • Video: Distributions and comparisons 11 min
  • Video: Relationships and regression lines 10 min
  • Article: The seaborn objects interface 9 min
Clarity and layout 5 lessons · 51 min
  • Video: Annotations that explain 10 min
  • Video: Small multiples instead of clutter 12 min
  • Video: Fixing a cluttered chart step by step 11 min
  • Video: Showing uncertainty in charts 10 min
  • Article: Typography and sizes for slides and reports 8 min
Interactive charts with Plotly 5 lessons · 46 min
  • Video: Plotly Express in a few lines 10 min
  • Article: When interactivity helps and when it hurts 8 min
  • Video: Maps and geographic data 11 min
  • Article: Animated charts with care 8 min
  • Video: Sharing interactive charts as HTML 9 min
Putting it into practice 5 lessons · 42 min
  • Article: A chart critique checklist 8 min
  • Video: Building a one page visual report 14 min
  • Video: Charts in dashboards 9 min
  • Article: Next steps and resources 6 min
  • Quiz: Final check 5 min

Requirements

  • Basic Python and a little pandas

Description

A good chart answers a question at a glance. A bad chart makes people squint, misread or stop trusting the analysis. The difference is rarely the library you use. It is the choices: which chart type, which comparison, which colours, which labels and what to leave out.

This free course teaches those choices together with the Python tools to make them real. We use matplotlib for full control, seaborn for fast statistical charts, and Plotly for interactive charts you can share in a browser.

What you will learn

  • How to pick a chart from the question you want to answer
  • The anatomy of a matplotlib figure, and how to control every part
  • Fast exploratory charts with seaborn
  • Colour that helps rather than decorates, including for colour blind readers
  • Labels, titles and annotations that tell the reader what to see
  • Small multiples instead of crowded charts
  • Interactive charts with Plotly and when interactivity is worth it
  • Exporting charts for slides, reports and the web

The approach

Each section starts with a real question about a public dataset, shows a first attempt that is technically correct but hard to read, and improves it step by step. You will learn to critique charts, including your own, using a short checklist.

You need basic Python and some pandas. Design experience is not required. The course is useful whether you are an analyst, a data scientist, an engineer building dashboards or a student.

Who this course is for

  • Analysts and data scientists who want clearer charts
  • Engineers building internal dashboards
  • Students presenting data in reports

Instructor

Priya Raman

Data analyst teaching pandas, charts and clear answers from messy data

  • 4.5 instructor rating
  • 15 reviews
  • 8,571 students
  • 2 courses
  • Sample

I work as a data analyst, which mostly means taking messy spreadsheets and database exports and turning them into answers people can act on. My daily tools are Python, pandas, SQL and Jupyter, with Polars creeping in for larger files.

I teach with public datasets so you see the real problems: missing values, odd date formats, duplicated rows. We clean them together and then make charts that are easy to read.

I believe a simple, well labelled chart beats a clever one, and that the best analysis is the one someone else can rerun next month.

View profile

Student reviews

4.5 8 ratings
5 star 63%
4 star 25%
3 star 13%
2 star 0%
1 star 0%
Amelia S. Oct 2, 2026
Sample

The critique checklist is great

I use the checklist before every presentation now.

Sarah P. Sep 19, 2026
Sample

My charts look professional now

The highlight technique and takeaway titles changed my reports overnight. My manager noticed immediately.

Ibrahim N. Aug 17, 2026
Sample

Free and excellent

Clear explanations of why some charts work and others do not, not just how to code them.

Rashid K. Jul 30, 2026
Sample

Changed how I think about charts

Starting from the question instead of the data is such a simple idea, and it works.

Lena W. Jul 9, 2026
Sample

Great matplotlib foundation

The object oriented interface finally makes sense. The Plotly section is shorter than I hoped.

Carlos J. May 31, 2026
Sample

Small multiples lesson is gold

Replacing a spaghetti line chart with small multiples was the single biggest improvement in my work.

Hye-won L. Apr 16, 2026
Sample

Accessible colour advice

Very useful guidance on colour vision deficiencies. I now check every chart with a simulator.

Patrick O. Feb 23, 2026
Sample

Wanted more dashboards

The chart design content is strong. The dashboard lesson felt brief compared with the rest.

Free Enroll now
SampleSample catalog: the instructors, courses, reviews and stats on this site are demo content.