Bird
Raised Fist0
Matplotlibdata~3 mins

Why Saving figures to files in Matplotlib? - Purpose & Use Cases

Choose your learning style10 modes available
The Big Idea

What if you could save your beautiful charts instantly and share them perfectly every time?

The Scenario

Imagine you create a beautiful chart on your computer screen to show your sales data. Now, you want to share it with your team by email or include it in a report. But all you have is the chart on your screen, and you have to take a screenshot or redraw it by hand.

The Problem

Taking screenshots is slow and messy. You might miss parts of the chart, or the image quality is poor. Redrawing charts by hand wastes time and can cause mistakes. You also can't easily reuse or update the chart later.

The Solution

Saving figures to files lets you keep your charts as clean, high-quality images or documents. You can save them directly from your code in formats like PNG, PDF, or SVG. This makes sharing, printing, and reusing charts simple and reliable.

Before vs After
✗ Before
plt.plot(data)
plt.show()
# Then manually take a screenshot
✓ After
plt.plot(data)
plt.savefig('sales_chart.png')
plt.show()
What It Enables

You can easily save and share your visual insights with others in professional, clear formats without extra effort.

Real Life Example

A marketing analyst creates monthly sales charts and saves them as PDF files to include in presentations and send to managers automatically.

Key Takeaways

Manual screenshots are slow and error-prone.

Saving figures directly creates high-quality images instantly.

This makes sharing and reusing charts easy and professional.

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