What are Matplotlib style sheets?

Matplotlib style sheets in Python are predefined sets of formatting parameters that enable quick and consistent customization of data visualizations, making it easier to create polished and uniform plots. This allows us to maintain consistency in the appearance of our charts and graphs across multiple figures and projects, whether we create a clean and professional look for a scientific report or give our data visualizations a unique and visually appealing style.

Real-world example

Consider this scenario: You are a data scientist who has done extensive research and analysis for a project, and now you need to present your findings to your superiors. You choose to work with Python's go-to library, Matplotlib. However, the default style does not meet your expectations, or maybe you have seen it too often and want a change. Fortunately, an ever-so-helpful colleague introduces the Matplotlib style sheets to you. These handy sheets let you apply predefined themes to your plots, giving you many more options to choose from. Let's explore Matplotlib style sheets and find our new favorite style!

Available style sheets

Matplotlib offers a variety of built-in style sheets that can dramatically change the appearance of plots. The following style categories are provided by Matplotlib style sheets:

There are further subcategories available as well. To get a list of all the available Matplotlib stylesheets, we can use the style.available attribute of the library as demonstrated by the code below:

import matplotlib.pyplot as plt
for i in plt.style.available:
print('*', i)

Let's try these in code

Here, we have provided a playground for you to try different Matplotlib style sheets. The code provided demonstrates how we can use style sheets in Matplotlib by plotting these three sample equations:

Explore different style options by providing the desired style in line 9. Have fun finding the perfect theme for yourself!

import matplotlib.pyplot as plt
import numpy as np
x = np.arange(0, 10, 0.1)
y_1 = 3*x + 10
y_2 = 0.4*x**2 + 2*x
y_3 = 0.1*x**3 - 10
plt.style.use('default')
plt.plot(x, y_1, label = r'$3x + 10$')
plt.plot(x, y_2, label = r'$0.4x^2 + 2x$')
plt.plot(x, y_3, label = r'$0.1x^3 - 10$')
plt.xlabel(r'$x$ values')
plt.ylabel(r'$y$ values')
plt.title('Default style')
plt.legend()
Try your styles here

Code explanation

Line 4: Define a range of values for the xx axis of our graph.
Lines 5–7: Calculate the yy values for the equations at the corresponding xx values.
Line 9: Provide the name of the style we want Matplotlib to use.
Lines 11–13: Plotting commands for each equation with labels in LaTeX format.
Lines 15–17: Add axis labels and titles to the plot.
Line 19: Add a legend to the plot according to plot labels.

Conclusion

Matplotlib style sheets are useful when trying new themes for our data visualizations. Classic, minimalistic, high-contrast, or modern look, Matplotlib's style sheets have a setting for each preference. We have explored most of the available stylesheets in this lesson, making choosing the design that suits our needs easy.

Free Resources

Copyright ©2025 Educative, Inc. All rights reserved