Bird
Raised Fist0
Data Analysis Pythondata~10 mins

Saving figures in Data Analysis Python - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - Saving figures
Create plot with data
↓
Call save function
↓
Specify filename and format
↓
File saved to disk
↓
Check file exists
↓
Done
This flow shows how a figure is created, saved to a file, and then confirmed saved.
Execution Sample
Data Analysis Python
import matplotlib.pyplot as plt
plt.plot([1, 2, 3], [4, 5, 6])
plt.savefig('myplot.png')
plt.close()
This code creates a simple line plot and saves it as 'myplot.png' in the current folder.
Execution Table
StepActionInput/ParametersResult/Output
1Import matplotlib.pyplotNoneModule loaded as plt
2Create plotx=[1,2,3], y=[4,5,6]Plot object created with line
3Save figureFilename='myplot.png'File 'myplot.png' written to disk
4Close plotNonePlot resources freed
5Check fileFilename='myplot.png'File exists on disk
💡 All steps completed, figure saved successfully
Variable Tracker
VariableStartAfter Step 2After Step 3After Step 4Final
pltmodule loadedplot createdfile savedplot closedplot closed
filenameNoneNone'myplot.png''myplot.png''myplot.png'
Key Moments - 2 Insights
Why do we call plt.close() after saving the figure?
plt.close() frees memory and closes the figure window. Without it, plots may accumulate in memory. See execution_table step 4.
What happens if we save the figure before plotting?
Saving before plotting writes an empty or blank file. The plot must be created first. See execution_table step 2 then 3.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table, what is the result after step 3?
APlot object created
BFile 'myplot.png' written to disk
CPlot resources freed
DModule loaded as plt
💡 Hint
Check the 'Result/Output' column for step 3 in execution_table
At which step is the plot closed to free resources?
AStep 4
BStep 2
CStep 3
DStep 5
💡 Hint
Look at the 'Action' column in execution_table for when plt.close() is called
If we change the filename to 'plot.pdf', what changes in the execution table?
AStep 4 is skipped
BStep 2 action changes to create PDF plot
CStep 3 result changes to 'File plot.pdf written to disk'
DNo changes at all
💡 Hint
Filename is used in step 3 for saving the file, see execution_table step 3
Concept Snapshot
Saving figures in Python with matplotlib:
1. Create plot with plt.plot()
2. Save with plt.savefig('filename.ext')
3. Close plot with plt.close() to free memory
Supports formats like PNG, PDF, SVG
Always save after plotting, before closing
Full Transcript
This lesson shows how to save figures using matplotlib in Python. First, we import matplotlib.pyplot as plt. Then we create a plot using plt.plot() with data points. Next, we save the figure to a file using plt.savefig() and specify the filename and format. After saving, we call plt.close() to free memory and close the plot. Finally, we can check that the file exists on disk. This process ensures the figure is saved correctly and resources are managed well.

Practice

(1/5)
1. What is the main function used in Python's matplotlib to save a plot as an image file?
easy
A. plt.show()
B. plt.savefig()
C. plt.plot()
D. plt.save()

Solution

  1. Step 1: Identify the function for saving plots

    The function plt.savefig() is designed to save the current figure to a file.
  2. Step 2: Differentiate from other functions

    plt.show() displays the plot, plt.plot() creates the plot, and plt.save() does not exist.
  3. Final Answer:

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

    Save plot = plt.savefig() [OK]
Hint: Remember: save figure uses 'savefig' word [OK]
Common Mistakes:
  • Confusing plt.show() with saving
  • Using plt.save() which is not a valid function
  • Thinking plt.plot() saves the figure
2. Which of the following is the correct syntax to save a plot as a PNG file with matplotlib?
easy
A. plt.savefig('plot.png')
B. plt.save('plot.png')
C. plt.savefig(plot.png)
D. plt.savefig('plot')

Solution

  1. Step 1: Check the function name and argument type

    The correct function is plt.savefig() and it requires the filename as a string.
  2. Step 2: Verify the filename format

    The filename must be a string with the extension, e.g., 'plot.png'. plt.savefig('plot.png') matches this exactly.
  3. Final Answer:

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

    Save with filename string = plt.savefig('plot.png') [OK]
Hint: Use quotes around filename with extension [OK]
Common Mistakes:
  • Omitting quotes around filename
  • Using plt.save() instead of plt.savefig()
  • Missing file extension in filename
3. What will be the effect of this code snippet?
import matplotlib.pyplot as plt
plt.plot([1, 2, 3], [4, 5, 6])
plt.savefig('myplot.pdf', dpi=300, bbox_inches='tight')
medium
A. Saves a PNG file named 'myplot.pdf' ignoring dpi and bbox_inches
B. Displays the plot on screen with 300 dpi resolution
C. Raises an error because dpi cannot be set for PDF files
D. Saves a PDF file named 'myplot.pdf' with high resolution and tight layout

Solution

  1. Step 1: Understand plt.savefig parameters

    The code saves the plot as 'myplot.pdf' with dpi=300 for high resolution and bbox_inches='tight' to reduce whitespace.
  2. Step 2: Confirm file format and parameters compatibility

    PDF supports dpi and bbox_inches parameters, so no error occurs and the file is saved correctly.
  3. Final Answer:

    Saves a PDF file named 'myplot.pdf' with high resolution and tight layout -> Option D
  4. Quick Check:

    Save PDF with dpi and tight bbox = correct [OK]
Hint: File extension sets format; dpi and bbox_inches improve quality [OK]
Common Mistakes:
  • Thinking dpi is ignored for PDF
  • Confusing save with display (plt.show())
  • Assuming dpi causes error for PDF
4. Identify the error in this code that tries to save a figure:
import matplotlib.pyplot as plt
plt.plot([1, 2, 3], [4, 5, 6])
plt.savefig(myplot.png)
medium
A. File extension '.png' is invalid
B. plt.plot() must be called after plt.savefig()
C. Missing quotes around filename 'myplot.png'
D. dpi parameter is required in plt.savefig()

Solution

  1. Step 1: Check the argument to plt.savefig()

    The filename must be a string, so it needs quotes around 'myplot.png'.
  2. Step 2: Verify other parts of the code

    Calling plt.plot() before plt.savefig() is correct, dpi is optional, and '.png' is a valid extension.
  3. Final Answer:

    Missing quotes around filename 'myplot.png' -> Option C
  4. Quick Check:

    Filename must be string with quotes [OK]
Hint: Always put filename in quotes when saving [OK]
Common Mistakes:
  • Forgetting quotes around filename
  • Thinking dpi is mandatory
  • Misordering plot and savefig calls
5. You want to save a plot as a high-quality PNG file with minimal white space around it. Which of the following code snippets achieves this correctly?
hard
A.
plt.savefig('figure.png', dpi=600, bbox_inches='tight')
B.
plt.savefig('figure.png', dpi=72, bbox_inches='standard')
C.
plt.savefig('figure.png', dpi=600, bbox_inches='loose')
D.
plt.savefig('figure.png', dpi='high', bbox_inches='tight')

Solution

  1. Step 1: Understand dpi and bbox_inches parameters

    High dpi (e.g., 600) means better image quality. bbox_inches='tight' reduces extra white space.
  2. Step 2: Evaluate each option

    plt.savefig('figure.png', dpi=600, bbox_inches='tight')
    uses dpi=600 and bbox_inches='tight' correctly.
    plt.savefig('figure.png', dpi=72, bbox_inches='standard')
    uses low dpi and invalid bbox_inches.
    plt.savefig('figure.png', dpi=600, bbox_inches='loose')
    uses bbox_inches='loose' which adds space.
    plt.savefig('figure.png', dpi='high', bbox_inches='tight')
    uses invalid dpi value 'high'.
  3. Final Answer:

    plt.savefig('figure.png', dpi=600, bbox_inches='tight') -> Option A
  4. Quick Check:

    High dpi + tight bbox = best quality [OK]
Hint: Use dpi=600 and bbox_inches='tight' for quality and layout [OK]
Common Mistakes:
  • Using invalid dpi values like strings
  • Choosing bbox_inches='loose' which adds whitespace
  • Ignoring dpi leading to low-quality images
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