Matplotlib is a powerful Python library for creating visualizations. One common task is adjusting figure size for presentations, publications, or personal use. This article explores several methods to control figure dimensions in Matplotlib.
Table of Contents
- Method 1: Setting Figure Size with
figsize
- Method 2: Adjusting Size After Creation
- Method 3: Setting Default Figure Size with
rcParams
- Troubleshooting
Method 1: Setting Figure Size with figsize
The simplest way to control figure size is using the figsize
parameter in plt.figure()
. figsize
takes a tuple (width, height)
in inches.
import matplotlib.pyplot as plt
# Create a figure 8 inches wide, 6 inches tall
fig = plt.figure(figsize=(8, 6))
# Add your plot
plt.plot([1, 2, 3, 4], [5, 6, 7, 8])
plt.show()
This sets the size before plotting, which is generally preferred.
Method 2: Adjusting Size After Creation
If you need to change a figure’s size after creation, use the set_size_inches()
method:
import matplotlib.pyplot as plt
fig = plt.figure()
plt.plot([1, 2, 3, 4], [5, 6, 7, 8])
fig.set_size_inches(10, 4) # Change to 10x4 inches
plt.show()
This is useful for dynamic adjustments, but less efficient than setting the size initially.
Method 3: Setting Default Figure Size with rcParams
For consistent sizing across multiple plots, modify Matplotlib’s runtime configuration (rcParams
):
import matplotlib.pyplot as plt
# Set default figure size to 6x4 inches
plt.rcParams["figure.figsize"] = [6, 4]
plt.plot([1, 2, 3, 4], [5, 6, 7, 8])
plt.show()
plt.figure()
plt.plot([1,2,3],[4,5,6])
plt.show()
This affects all subsequent figures unless overridden. Changes persist until the Matplotlib session ends.
Troubleshooting
Q: My figure is still too small/large.
A: Double-check you’re using inches. Look for code affecting layout (e.g., tight_layout()
). Experiment with different figsize
values.
Q: Can I change the aspect ratio?
A: Yes, adjust the width and height in figsize
or set_size_inches()
.
Q: What if I use both figsize
and set_size_inches()
?
A: set_size_inches()
overrides figsize
.
Q: Are there limitations?
A: Very large figures might cause performance issues or exceed display capabilities. Very small figures can result in illegible content.