Bird
Raised Fist0
Matplotlibdata~10 mins

Saving figures to files in Matplotlib - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - Saving figures to files
Create plot with matplotlib
↓
Call plt.savefig(filename)
↓
Figure saved to file
↓
Optionally close figure with plt.close()
↓
End
First, create a plot. Then call savefig() with a filename to save the image file. Optionally close the figure to free memory.
Execution Sample
Matplotlib
import matplotlib.pyplot as plt
plt.plot([1, 2, 3], [4, 5, 6])
plt.savefig('myplot.png')
plt.close()
This code plots points and saves the figure as 'myplot.png' file.
Execution Table
StepActionEvaluationResult
1Import matplotlib.pyplot as pltModule loadedplt ready to use
2Call plt.plot([1,2,3], [4,5,6])Create line plotPlot created in memory
3Call plt.savefig('myplot.png')Save current figure to fileFile 'myplot.png' created on disk
4Call plt.close()Close current figureFigure memory freed
5End of scriptNo more commandsPlot saved and program ends
💡 All steps completed, figure saved and closed.
Variable Tracker
VariableStartAfter Step 2After Step 3After Step 4
pltmodule loadedplot createdfigure savedfigure closed
Key Moments - 2 Insights
Why do we call plt.close() after saving the figure?
Calling plt.close() frees memory by closing the figure. Without it, figures stay in memory which can slow down programs if many plots are created. See execution_table step 4.
What happens if we call plt.savefig() before plt.plot()?
If plt.savefig() is called before creating a plot, it saves an empty figure. The plot must be created first as shown in execution_table step 2 before saving in step 3.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table, what is the result after step 3?
APlot created in memory
BFigure memory freed
CFile 'myplot.png' created on disk
DModule loaded
💡 Hint
Check the 'Result' column for step 3 in the execution_table.
At which step is the figure closed to free memory?
AStep 2
BStep 4
CStep 3
DStep 5
💡 Hint
Look at the 'Action' column in execution_table for closing the figure.
If we skip plt.close(), what changes in variable_tracker after step 4?
A'figure closed' would not appear
B'figure saved' changes to 'figure closed'
C'plot created' changes to 'figure closed'
D'figure closed' remains the same
💡 Hint
Check variable_tracker row for 'plt' after step 4 to see if figure is closed.
Concept Snapshot
Saving figures to files with matplotlib:
1. Create plot with plt.plot()
2. Save with plt.savefig('filename.png')
3. Optionally close figure with plt.close() to free memory
4. Supported formats: PNG, JPG, PDF, SVG
5. File saved in current directory unless path given
Full Transcript
This visual execution shows how to save a matplotlib figure to a file. First, the plot is created using plt.plot(). Then plt.savefig() saves the current figure to a file named 'myplot.png'. Calling plt.close() frees memory by closing the figure. The execution table traces each step and the variable tracker shows the state of plt module. Key moments clarify why closing figures is important and the order of commands. The quiz tests understanding of saving and closing figures. The snapshot summarizes the steps to save plots as image files.

Practice

(1/5)
1. What does the plt.savefig() function do in matplotlib?
easy
A. It saves the current figure to a file on your computer.
B. It displays the figure on the screen.
C. It clears the current figure.
D. It creates a new figure window.

Solution

  1. Step 1: Understand the purpose of plt.savefig()

    This function is used to save the current plot or figure to a file, such as PNG or PDF.
  2. Step 2: Differentiate from display functions

    Functions like plt.show() display the figure, but plt.savefig() writes it to disk.
  3. Final Answer:

    It saves the current figure to a file on your computer. -> Option A
  4. Quick Check:

    plt.savefig() saves figure [OK]
Hint: Remember: savefig saves, show displays [OK]
Common Mistakes:
  • Confusing plt.savefig() with plt.show()
  • Thinking savefig displays the plot
  • Assuming savefig clears the figure
2. Which of the following is the correct syntax to save a figure as a PNG file named 'plot.png'?
easy
A. plt.save('plot.png')
B. plt.savefig('plot.png')
C. plt.savefig(plot.png)
D. plt.save_figure('plot.png')

Solution

  1. Step 1: Recall the correct function name

    The function to save figures is plt.savefig(), not plt.save() or others.
  2. Step 2: Check the argument format

    The filename must be a string, so it should be in quotes: 'plot.png'.
  3. Final Answer:

    plt.savefig('plot.png') -> Option B
  4. Quick Check:

    Correct function and string filename [OK]
Hint: Use plt.savefig('filename.ext') with quotes [OK]
Common Mistakes:
  • Missing quotes around filename
  • Using incorrect function name
  • Passing filename without quotes
3. What will happen if you run this code?
import matplotlib.pyplot as plt
plt.plot([1, 2, 3], [4, 5, 6])
plt.savefig('myplot.pdf', dpi=300)
plt.close()
medium
A. The plot is shown on screen but not saved.
B. An error occurs because dpi is not allowed with PDF files.
C. A PDF file named 'myplot.pdf' is saved with high resolution.
D. The file 'myplot.pdf' is saved but with default dpi 72.

Solution

  1. Step 1: Understand plt.savefig() with dpi parameter

    Setting dpi=300 increases the resolution of the saved image, including PDF files.
  2. Step 2: Confirm file saving and closing

    The code saves the plot as 'myplot.pdf' with dpi 300, then closes the figure to free memory.
  3. Final Answer:

    A PDF file named 'myplot.pdf' is saved with high resolution. -> Option C
  4. Quick Check:

    savefig with dpi=300 saves high-res PDF [OK]
Hint: dpi controls resolution; works with PDF too [OK]
Common Mistakes:
  • Thinking dpi is ignored for PDF
  • Expecting plot to display automatically
  • Confusing plt.close() with plt.show()
4. Identify the error in this code snippet that tries to save a figure:
import matplotlib.pyplot as plt
plt.plot([1, 2, 3], [4, 5, 6])
plt.savefig(myplot.png)
plt.show()
medium
A. The file extension '.png' is invalid.
B. plt.show() must come before plt.savefig().
C. plt.plot() is missing a figure creation step.
D. The filename is not enclosed in quotes.

Solution

  1. Step 1: Check the filename argument in plt.savefig()

    The filename must be a string, so it needs quotes: 'myplot.png'.
  2. Step 2: Verify order of plt.show() and plt.savefig()

    Calling plt.savefig() before plt.show() is correct and common practice.
  3. Final Answer:

    The filename is not enclosed in quotes. -> Option D
  4. Quick Check:

    Filename must be a string in quotes [OK]
Hint: Always put filename in quotes in savefig() [OK]
Common Mistakes:
  • Omitting quotes around filename
  • Thinking plt.show() must come first
  • Assuming file extension is wrong
5. You want to save a plot tightly cropped around the content to avoid extra white space. Which plt.savefig() parameter helps achieve this?
hard
A. bbox_inches='tight'
B. format='png'
C. transparent=True
D. dpi=300

Solution

  1. Step 1: Understand the role of bbox_inches

    The parameter bbox_inches='tight' trims the saved figure to fit the content closely, removing extra margins.
  2. Step 2: Differentiate from other parameters

    dpi controls resolution, transparent controls background, and format sets file type, none affect cropping.
  3. Final Answer:

    bbox_inches='tight' -> Option A
  4. Quick Check:

    Use bbox_inches='tight' to crop figure [OK]
Hint: Use bbox_inches='tight' to crop saved figure [OK]
Common Mistakes:
  • Confusing dpi with cropping
  • Using transparent instead of bbox_inches
  • Setting format does not crop figure
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard