How To Change Matplotlib Figure Size


By squashlabs, Last Updated: August 9, 2023

How To Change Matplotlib Figure Size

To change the size of a Matplotlib figure in Python, you can use the figure function from the matplotlib.pyplot module. The figure function allows you to specify the width and height of the figure in inches. Here are the steps to change the figure size:

Step 1: Import the necessary modules

First, you need to import the necessary modules. In this case, you need to import matplotlib.pyplot as plt. Here is an example:

import matplotlib.pyplot as plt

Related Article: How To Exit Python Virtualenv

Step 2: Create a figure object

Next, you need to create a figure object using the figure function. The figure function takes two optional arguments: figsize and dpi. The figsize argument is a tuple of two values representing the width and height of the figure in inches. The dpi argument is the dots per inch (resolution) of the figure. If not specified, the default values are (6.4, 4.8) inches for figsize and 100 for dpi. Here is an example:

fig = plt.figure(figsize=(8, 6), dpi=80)

This will create a figure with a width of 8 inches, a height of 6 inches, and a resolution of 80 dots per inch.

Step 3: Plot your data

Once you have created the figure object, you can plot your data using the various plotting functions provided by Matplotlib. Here is an example:

x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]

plt.plot(x, y)

This will plot a line graph using the plot function.

Step 4: Display the figure

Finally, you need to display the figure using the show function. Here is an example:

This will display the figure on the screen.

Related Article: How to Integrate Python with MySQL for Database Queries


Here is a complete example that demonstrates how to change the size of a Matplotlib figure:

import matplotlib.pyplot as plt

# Create a figure object
fig = plt.figure(figsize=(8, 6), dpi=80)

# Plot data
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]
plt.plot(x, y)

# Display the figure

This will create a figure with a width of 8 inches, a height of 6 inches, and a resolution of 80 dots per inch, and plot the data as a line graph.

Why change the figure size?

The question of how to change the figure size in Matplotlib may arise for various reasons. Here are some potential reasons:

Better visualization: Changing the figure size allows you to control the aspect ratio and dimensions of the plot, which can lead to better visualization of the data.

Publication requirements: If you are creating plots for a publication or a presentation, you may need to adhere to specific size requirements. Changing the figure size allows you to meet these requirements.

Layout considerations: In some cases, you may need to integrate the plot into a larger layout or combine multiple plots together. Changing the figure size can help you achieve the desired layout.

Suggestions and alternatives

Subplots: If you need to create multiple plots within the same figure, you can use the subplots function instead of the figure function. The subplots function allows you to create a grid of subplots and specify the size of each subplot individually. This can be useful when you want to have more control over the layout of multiple plots.

Save the figure: If you want to save the figure to a file instead of displaying it on the screen, you can use the savefig function. The savefig function allows you to specify the file format (e.g., PNG, PDF, SVG) and the filename. Here is an example:


This will save the figure as a PNG file with the filename “figure.png”.

Related Article: 16 Amazing Python Libraries You Can Use Now

Best practices

Here are some best practices to consider when changing the figure size in Matplotlib:

Choose appropriate sizes: When changing the figure size, it is important to choose appropriate sizes that are suitable for the content you are plotting. Small figures may lead to cramped plots, while large figures may waste space and reduce the readability of the plot.

Consider the aspect ratio: The aspect ratio of the figure is the ratio of its width to its height. It is important to consider the aspect ratio to ensure that the plot is not distorted or stretched. For example, if you are plotting a scatter plot with equal scaling on both axes, you may want to choose a square figure size to preserve the aspect ratio.

Experiment and iterate: Changing the figure size is not an exact science, and the optimal size may vary depending on the specific data and plot type. It is recommended to experiment with different sizes and iterate to find the best size for your specific use case.

More Articles from the Python Tutorial: From Basics to Advanced Concepts series:

Database Query Optimization in Django: Boosting Performance for Your Web Apps

Optimizing database queries in Django is essential for boosting the performance of your web applications. This article explores best practices and strategies for... read more

Converting Integer Scalar Arrays To Scalar Index In Python

Convert integer scalar arrays to scalar index in Python to avoid the 'TypeError: Only integer scalar arrays can be converted to a scalar index with 1D' error. This... read more

How To Convert A Tensor To Numpy Array In Tensorflow

Tensorflow is a powerful framework for building and training machine learning models. In this article, we will guide you on how to convert a tensor to a numpy array... read more

How to Normalize a Numpy Array to a Unit Vector in Python

Normalizing a Numpy array to a unit vector in Python can be done using two methods: l2 norm and max norm. These methods provide a way to ensure that the array has a... read more

How to Adjust Font Size in a Matplotlib Plot

Adjusting font size in Matplotlib plots is a common requirement when creating visualizations in Python. This article provides two methods for adjusting font size: using... read more

How to Position the Legend Outside the Plot in Matplotlib

Positioning a legend outside the plot in Matplotlib is made easy with Python's Matplotlib library. This guide provides step-by-step instructions on how to achieve this... read more