📖 Scenario: You are working on a data science project where you want your charts to have a consistent and unique look. Instead of setting colors and fonts every time, you decide to create a custom style sheet for matplotlib. This will save time and make your charts look professional and uniform.
🎯 Goal: Create a custom matplotlib style sheet with specific colors and font sizes, then apply it to a simple line plot to see the effect.
📋 What You'll Learn
Create a dictionary with style settings for colors and fonts
Save the style dictionary as a custom style sheet
Load and apply the custom style sheet in matplotlib
Plot a simple line chart using the custom style
💡 Why This Matters
🌍 Real World
Custom style sheets help data scientists and analysts keep their charts consistent and visually appealing across reports and presentations.
💼 Career
Knowing how to create and apply custom styles in matplotlib is useful for roles involving data visualization, reporting, and dashboard creation.
Progress0 / 4 steps
1
Create a style dictionary
Create a dictionary called custom_style with these exact entries: 'axes.facecolor' set to '#EAEAF2', 'axes.edgecolor' set to '#333333', 'lines.linewidth' set to 2, and 'font.size' set to 14.
Matplotlib
Hint
Use curly braces {} to create a dictionary. Each key-value pair should be separated by a comma.
2
Save the style dictionary as a style sheet
Import matplotlib and save the custom_style dictionary as a style sheet file named 'custom_style.mplstyle' using matplotlib.style.core.write_style_file.
Matplotlib
Hint
Use import matplotlib first. Then call matplotlib.style.core.write_style_file with the dictionary and filename.
3
Load and apply the custom style sheet
Import matplotlib.pyplot as plt and use plt.style.use to apply the style sheet file 'custom_style.mplstyle'.
Matplotlib
Hint
Use plt.style.use with the filename string to apply the style.
4
Plot a line chart using the custom style
Create a list x with values [1, 2, 3, 4, 5] and a list y with values [2, 3, 5, 7, 11]. Use plt.plot(x, y) to plot the line chart and then call plt.show() to display it.
Matplotlib
Hint
Make sure to call plt.show() to display the plot window.
Practice
(1/5)
1. What is the main purpose of creating a custom style sheet in matplotlib?
easy
A. To make charts look consistent and save time when plotting
B. To write Python code faster
C. To change the data in the plot
D. To export plots as images
Solution
Step 1: Understand the role of style sheets
Style sheets control the appearance of plots, such as colors and fonts.
Step 2: Identify the benefit of custom style sheets
Custom style sheets help keep charts consistent and save time by reusing styles.
Final Answer:
To make charts look consistent and save time when plotting -> Option A
Quick Check:
Custom style sheets = consistent charts + time saving [OK]
Hint: Custom styles = consistent look + less work [OK]
Common Mistakes:
Thinking style sheets change data
Confusing style sheets with exporting images
Believing style sheets speed up coding
2. Which of the following is the correct way to apply a custom style sheet named my_style.mplstyle in matplotlib?
easy
A. plt.style('my_style')
B. plt.use_style('my_style')
C. plt.style.use('my_style.mplstyle')
D. plt.style.apply('my_style.mplstyle')
Solution
Step 1: Recall the correct function to apply styles
The function to apply a style sheet is plt.style.use().
Step 2: Check the correct argument format
The style file name should be passed as a string, including the extension if needed.
Final Answer:
plt.style.use('my_style.mplstyle') -> Option C
Quick Check:
Use plt.style.use() with filename [OK]
Hint: Use plt.style.use('filename') to apply styles [OK]
Common Mistakes:
Using incorrect function names like plt.use_style
Omitting .mplstyle extension when needed
Using plt.style() instead of plt.style.use()
3. Given the following code, what will be the color of the line in the plot?
The style sheet sets lines.color to red, which changes line color.
Step 2: Apply style to plot
Since plt.style.use('custom_style.mplstyle') is called, the line color becomes red.
Final Answer:
Red -> Option D
Quick Check:
Style sets lines.color = red, so line is red [OK]
Hint: Style file sets line color, so plot uses that color [OK]
Common Mistakes:
Ignoring style file and expecting default color
Confusing color names
Not applying style before plotting
4. What is wrong with this code snippet if the custom style sheet my_style.mplstyle is not applied?
import matplotlib.pyplot as plt
plt.style.use(my_style.mplstyle)
plt.plot([1, 2], [3, 4])
plt.show()
medium
A. The style file name should be a string in quotes
B. plt.plot() is missing required arguments
C. plt.show() should be called before plt.plot()
D. The style file must be imported as a module
Solution
Step 1: Check how style file is passed
The style file name must be a string, so it needs quotes around it.
Step 2: Identify the error in code
Without quotes, Python treats my_style.mplstyle as a variable, causing an error.
Final Answer:
The style file name should be a string in quotes -> Option A
Quick Check:
File name must be string in plt.style.use() [OK]
Hint: Put style file name in quotes inside plt.style.use() [OK]
Common Mistakes:
Forgetting quotes around style file name
Calling plt.show() too early
Trying to import style file as Python module
5. You want to create a custom style sheet that sets the plot background to light gray and the grid lines to dashed blue. Which of the following .mplstyle file contents will achieve this?
hard
A. figure.facecolor: #d3d3d3
grid.color: blue
grid.linestyle: '--'
B. axes.facecolor: lightgray
grid.color: blue
grid.linestyle: '--'
C. background.color: lightgray
grid.color: blue
grid.line: dashed
D. axes.background: lightgray
grid.style: dashed
grid.color: blue
Solution
Step 1: Identify correct keys for background and grid
The correct key for plot background is axes.facecolor. Grid color uses grid.color and line style uses grid.linestyle.
Step 2: Match values to keys
Light gray is 'lightgray', grid color is 'blue', and dashed lines use '--'. axes.facecolor: lightgray
grid.color: blue
grid.linestyle: '--' matches all correctly.
Final Answer:
axes.facecolor: lightgray
grid.color: blue
grid.linestyle: '--' -> Option B
Quick Check:
Use axes.facecolor and grid.linestyle for background and grid [OK]
Hint: Use axes.facecolor and grid.linestyle keys in style file [OK]
Common Mistakes:
Using wrong keys like axes.background or grid.style
Wrong color names or formats
Missing quotes or incorrect line style syntax
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.