Bird
Raised Fist0
Matplotlibdata~10 mins

Saving to PNG, SVG, PDF in Matplotlib - Step-by-Step Execution

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Concept Flow - Saving to PNG, SVG, PDF
Create plot with matplotlib
Choose file format: PNG, SVG, PDF
Call savefig() with filename and format
File saved on disk
Use saved file for reports, presentations, or web
You first create a plot, then pick a file format, save it using savefig(), and finally get a file you can use anywhere.
Execution Sample
Matplotlib
import matplotlib.pyplot as plt
plt.plot([1, 2, 3], [4, 5, 6])
plt.savefig('plot.png')
plt.savefig('plot.svg')
plt.savefig('plot.pdf')
This code draws a simple line plot and saves it three times in PNG, SVG, and PDF formats.
Execution Table
StepActionFilenameFormat DetectedResult
1Create plot--Line plot with points (1,4), (2,5), (3,6) created
2Save plotplot.pngPNGFile 'plot.png' saved as PNG image
3Save plotplot.svgSVGFile 'plot.svg' saved as SVG vector image
4Save plotplot.pdfPDFFile 'plot.pdf' saved as PDF document
5End--All files saved successfully
💡 All savefig calls completed, files saved in specified formats
Variable Tracker
VariableStartAfter Step 1After Step 2After Step 3After Step 4Final
plot_objectNoneLine plot createdLine plot unchangedLine plot unchangedLine plot unchangedLine plot unchanged
filenameNoneNoneplot.pngplot.svgplot.pdfplot.pdf
formatNoneNonePNGSVGPDFPDF
Key Moments - 3 Insights
Why do we not need to specify the format explicitly in savefig()?
Matplotlib detects the format from the file extension in the filename, as shown in execution_table steps 2-4.
What happens if you call savefig() multiple times without creating a new plot?
The same plot is saved multiple times in different formats or files, as seen in steps 2-4 where the plot_object stays unchanged.
Can you save a plot before creating it?
No, the plot must exist first (step 1) before saving; otherwise, savefig() will save an empty or error plot.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table, what format is detected when saving 'plot.svg'?
APNG
BSVG
CPDF
DJPEG
💡 Hint
Check the 'Format Detected' column in row 3 of execution_table.
At which step does the plot get created?
AStep 3
BStep 2
CStep 1
DStep 4
💡 Hint
Look at the 'Action' column in execution_table for when the plot is created.
If you change the filename to 'myplot.pdf' in step 2, what format will matplotlib save?
APDF
BSVG
CPNG
DCannot save
💡 Hint
Matplotlib uses the file extension to detect format as shown in execution_table steps 2-4.
Concept Snapshot
matplotlib savefig() saves plots to files.
File format is guessed from filename extension.
Common formats: PNG (image), SVG (vector), PDF (document).
Call plt.savefig('filename.ext') after plotting.
Files can be used in reports or presentations.
Full Transcript
This visual execution shows how to save matplotlib plots to PNG, SVG, and PDF files. First, a simple line plot is created with plt.plot(). Then, plt.savefig() is called three times with different filenames ending in .png, .svg, and .pdf. Matplotlib detects the file format from the extension and saves the plot accordingly. The execution table tracks each step, showing the action, filename, detected format, and result. The variable tracker shows the plot object remains the same while filename and format change with each save. Key moments clarify that the format is detected from the filename, the plot must exist before saving, and multiple saves reuse the same plot. The quiz tests understanding of format detection, plot creation step, and effect of changing filename. The snapshot summarizes the main points for quick recall.

Practice

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

Solution

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

    This function is used to save the current figure to a file on your computer.
  2. Step 2: Differentiate from other functions

    Functions like plt.show() display the plot, but do not save it. plt.savefig() specifically saves the plot as an image file.
  3. Final Answer:

    It saves the current plot to a file in a specified format. -> Option B
  4. Quick Check:

    Save plot = plt.savefig() [OK]
Hint: Remember: savefig saves, show displays [OK]
Common Mistakes:
  • Confusing plt.savefig() with plt.show()
  • Thinking savefig displays the plot
  • Using savefig after plt.show() causing empty files
2. Which of the following is the correct syntax to save a plot as a PDF file named 'chart.pdf'?
easy
A. plt.savefig('chart.pdf')
B. plt.save('chart.pdf')
C. plt.savefig('chart.pdf', format='png')
D. plt.savefig(chart.pdf)

Solution

  1. Step 1: Identify the correct function name

    The correct function to save a plot is plt.savefig().
  2. Step 2: Use correct string syntax for filename

    The filename must be a string, so it should be enclosed in quotes: 'chart.pdf'.
  3. Final Answer:

    plt.savefig('chart.pdf') -> Option A
  4. Quick Check:

    Correct function and string filename = plt.savefig('chart.pdf') [OK]
Hint: Use plt.savefig('filename.ext') with quotes [OK]
Common Mistakes:
  • Omitting quotes around filename
  • Using plt.save() instead of plt.savefig()
  • Passing filename without quotes causing syntax error
3. What will be the output file format if you run this code?
import matplotlib.pyplot as plt
plt.plot([1, 2, 3], [4, 5, 6])
plt.savefig('output_image.svg')
plt.close()
medium
A. SVG vector graphic file
B. PNG image file
C. PDF document file
D. JPEG image file

Solution

  1. Step 1: Check the filename extension in savefig

    The filename is 'output_image.svg', which ends with '.svg'.
  2. Step 2: Understand file format selection by extension

    Matplotlib saves the plot in the format matching the file extension. '.svg' means it saves as an SVG vector graphic.
  3. Final Answer:

    SVG vector graphic file -> Option A
  4. Quick Check:

    File extension '.svg' = SVG format [OK]
Hint: File extension decides format: .svg means SVG file [OK]
Common Mistakes:
  • Assuming default PNG without checking extension
  • Confusing SVG with PDF format
  • Not saving before closing causing empty files
4. Identify the error in this code snippet that tries to save a plot as a PNG file:
import matplotlib.pyplot as plt
plt.plot([1, 2, 3], [3, 2, 1])
plt.show()
plt.savefig('plot.png')
medium
A. plt.savefig() requires an additional argument for format.
B. The filename extension '.png' is incorrect for saving images.
C. plt.plot() is missing required arguments.
D. The plot is saved after plt.show(), which may save a blank image.

Solution

  1. Step 1: Understand the order of plt.show() and plt.savefig()

    Calling plt.show() displays and clears the figure by default.
  2. Step 2: Identify consequence of saving after show()

    Saving after plt.show() often results in an empty or blank image file.
  3. Final Answer:

    The plot is saved after plt.show(), which may save a blank image. -> Option D
  4. Quick Check:

    Save before show to avoid blank files [OK]
Hint: Always savefig before show() to keep the plot [OK]
Common Mistakes:
  • Saving after plt.show() causing empty files
  • Thinking filename extension needs special format argument
  • Assuming plt.plot() needs more arguments
5. You want to save the same plot in three formats: PNG, SVG, and PDF. Which code snippet correctly saves the plot in all three formats?
hard
A. plt.plot([1,2,3],[3,2,1]) plt.savefig('plot.png') plt.savefig('plot.jpg') plt.savefig('plot.pdf')
B. plt.plot([1,2,3],[3,2,1]) plt.savefig('plot') plt.savefig('plot') plt.savefig('plot')
C. plt.plot([1,2,3],[3,2,1]) plt.savefig('plot.png', format='png') plt.savefig('plot.svg', format='svg') plt.savefig('plot.pdf', format='pdf')
D. plt.plot([1,2,3],[3,2,1]) plt.save('plot.png') plt.save('plot.svg') plt.save('plot.pdf')

Solution

  1. Step 1: Check function names and parameters

    The correct function is plt.savefig(). plt.plot([1,2,3],[3,2,1]) plt.save('plot.png') plt.save('plot.svg') plt.save('plot.pdf') uses plt.save(), which is invalid.
  2. Step 2: Confirm saving with explicit format or extension

    plt.plot([1,2,3],[3,2,1]) plt.savefig('plot') plt.savefig('plot') plt.savefig('plot') uses filenames without extensions, so format is unclear. plt.plot([1,2,3],[3,2,1]) plt.savefig('plot.png') plt.savefig('plot.svg') plt.savefig('plot.pdf') relies on extensions only, which works but may be less explicit.
  3. Step 3: Understand explicit format argument

    plt.plot([1,2,3],[3,2,1]) plt.savefig('plot.png', format='png') plt.savefig('plot.svg', format='svg') plt.savefig('plot.pdf', format='pdf') uses both filename and explicit format argument, ensuring correct file type saving.
  4. Final Answer:

    Saves the plot in PNG, SVG, and PDF formats using explicit format arguments. -> Option C
  5. Quick Check:

    Use plt.savefig(filename, format='ext') for clarity [OK]
Hint: Use plt.savefig with filename and format='ext' for multiple saves [OK]
Common Mistakes:
  • Using plt.save() instead of plt.savefig()
  • Saving without file extensions causing format errors
  • Not specifying format when filename lacks extension