The Python Graph Gallery has always been a reservoir of inspiration, providing hundreds of foundational chart examples for newcomers and seasoned developers alike.
While our vast collection offers a stepping stone into the world of data visualization, the following list stands out.
Every chart here represents the pinnacle of craftsmanship, exhibiting the depths to which matplotlib can be customized. These are not just graphs; they are polished masterpieces, ready for publication.
While I'm deeply indebted to the original authors for their stellar work, it's worth noting that many of these visualizations were first conceived in R, a testament to its rich visualization ecosystem. In an endeavor to bring the best to our Python community, I've translated these gems to further showcase the versatility and power of matplotlib.
Dive in and get inspired! 😍
Love Python and Dataviz? I send my best tips once a week in my "Dataviz Universe" newsletter. More than 8000 people love it!
Minimalist black and white line chart about the salary evolution of a freelance data scientist
by Joseph Barbier
Read tutorialNumber of shops within a 20-minute round-trip walk
by Sebastiaan Broekema
Read tutorialBreakdown and distribution of the unemployment rate in Belgium
by Koen Van den Eeckhout
Read tutorialWaffle chart about animal adoption evolution between 2017 and 2024.
by Joseph Barbier
Read tutorialCombine two choropleth maps with different granularities
by Joseph Barbier
Read tutorialTemperature change compared to the average between 1951 and 1980.
by Joseph Barbier
Read tutorialChange in the number of storms by storm type between 2010 and 2022.
by Muhammad Azhar
Read tutorialBreakdown by continent of the percentage of cereals used for animal feed.
by Benjamin Nowak
Read tutorialEvolution of Japan's population between 1952 and 2024.
by Joseph Barbier
Read tutorialRepartition of earthquakes around the world, with description of extensive description and annotations.
by Joseph Barbier
Read tutorialCartogram (non-contiguous) of population density in Asia.
by Joseph Barbier
Read tutorialChoropleth map of CO2 consumption per capita in Europe, with a custom legend.
by Joseph Barbier
Read tutorialRepartition of London recycling rates by boroughs, with small multiples of waffle charts.
by Lisa Hornung
Read tutorialNumber of natural disasters over time per disaster type, with inflexion arrows for the legend.
by Joseph Barbier
Read tutorialEvolution of unemployment rates between different regions across the world during the COVID-19 pandemic.
by Joseph Barbier
Read tutorialA lollipop plot with a background image to visualize the popularity of music genres over time.
by Joseph Barbier
Read tutorialPath and duration of solar eclipses in the USA, in 2023 and 2024.
by Joseph Barbier
Read tutorialCombine multiple maps about happiness together, with a lollipop plot for the legend.
by Joseph Barbier
Read tutorialRelationship between footprint and biocapacity of countries, with specific highlights on some countries.
by Joseph Barbier
Read tutorialAdvanced dumbell chart about wins and losses in the Bundesliga.
by Cédric Scherer
Read tutorialA double heatmap to compare normalized and non-normalized data about energy consumption in France
by Joseph Barbier
Read tutorialA ridgeline plot with quantiles and annotations to visualize the price distribution of rents in San Francisco.
by Ansgar Wolsing
Read tutorialInvestigating the 10 best and worst countries to live in, with bubble in cells to represent the data. A good way to showcase the plottable library.
by Fortune Uwha
Read tutorialMovie titles in the background of a line chart to visualize average ratings over time.
by Joseph Barbier
Read tutorialThis compendium of stacked area charts went viral. Read a translation in python of this work by Enrin, originally written in R.
by Erin
Read tutorialA choropleth map with a gradient color scale to visualize the number of people with cancer in European countries.
by Joseph Barbier
Read tutorialA highly customized circular barplot visualizing Star Wars data using Python and Matplotlib. It provides a step-by-step guide from a basic barplot to a fully customized version including fonts, y-axis scaling, annotations and legend.
by Lisa Hornung
Read tutorialA mirror barplot with individual observations using the Matplotlib library to visualize data about the Erasmus Program in European countries.
by Benjamin Nowak
Read tutorialA scatter plot with custom annotations and colors, with some markers being circled.
by Data Wrapper
Read tutorialA clean and insightful histogram produced by the french institute of statistics showing the salary distribution in the country.
by INSEE
Read tutorialAn area over a flexible baseline to show deviations from a reference or baseline made with Python and Matplotlib or Plotly.
by J. Kühn
Read tutorialA circular barchart with several features per group made with Python and Matplotlib
by T. Stadler
Read tutorialA circular lollipop plot with customized layout, great color palette and in circle legend
by C. Scherer
Read tutorialAllows the comparison of several groups with statistical test results on top
by T. Wang
Read tutorialA heatmap where each cell is filled by a circle with varying size
by M. Siple
Read tutorialSeveral highlighted lineplots arranged in a multi panel layout to explore the evolution of the water source installation rankings by country
by A. Madjid
Read tutorialA scatter plot with images inside each marker to provide additional context
by Tanya Shapiro
Read tutorialA reproduction of an horizontal barplot made by The Economist to showcase the power of Python for dataviz
by The Economist
Read tutorialA parallel coordinate chart to explore the maximum ages recorded for different species of lemurs with Python and Matplotlib.
by G. Karamanis
Read tutorialGood looking line chart with inline labels at the end of each line
by C. Scherer
Read tutorialMimicking the style of the Economist to get a clean line chart
by The Economist
Read tutorialMimicking the style of the Economist to get a clean area chart
by The Economist
Read tutorialA highly customized lollipop chart showing world records for the Mario Kart 64 racing game on the Nintendo 64
by C. Scherer
Read tutorialA line chart with several groups per panel on a small multiple layout. With a beautiful color palette.
by O. Medina
Read tutorialA highly customized radar chart with custom annotations and labels to explore the palmerpenguins dataset made with Python and Matplotlib.
by T. Wang
Read tutorialA chart made of a scatterplot with variable color, shape, and opacity, and several annotations to explore the relationship between the characteristics of astronauts and space missions
by C. Thompson
Read tutorialA custom scatterplot with an overlayed regression fit and auto-positioned labels to explore the relationship between the Corruption Perceptions Index and Human Development Index
by C. O. Wilke
Read tutorialA clean stacked barplot with nice color palette, some very clean inline labels, a powerful title and slick footer caption with logos.
by G. Fontana
Read tutorialA streamchart to explore the appearances of the most popular characters in Chris Claremont's X-Men comics with Python
by C. Scherer
Read tutorialA custom scatterplot with auto-positioned labels to explore the palmerpenguins dataset made with Python and Matplotlib
by T. Wang
Read tutorialMultiple lineplots with filled areas with a customized layout to explore the evolution of animal rescues across different boroughs in London
by G. Karamanis
Read tutorialA polar bar chart showing the number of spanish speakers per country
by nyx-it-up
Read tutorialSmall multiple is a dataviz technique allowing to study several groups on the same figure. Repeating all groups but faded out adds some useful context to each section.
by G. Fontana
Read tutorialA barplot with annotations and arrows to highlight the most important features of the data
by J. Barbier
Read tutorialNote that I am always hunting for the best charts made with Python! If you have any examples in mind that should be showcased here, please let me know 🙏.
If you like those examples, you will love Matplotlib Journey. It's an interactive online course crafted to transform you into a Matplotlib dataviz expert. It provides a clear, big-picture understanding of how data visualization works in Python, empowering you to grasp any example from the gallery with ease.
Finally, Understand Matplotlib.Do you know all the chart types? Do you know which one you should pick? I made a decision tree that answers those questions. You can download it for free!