Open In App

Matplotlib.pyplot.tight_layout() in Python

Last Updated : 24 Jan, 2024
Improve
Improve
Like Article
Like
Save
Share
Report

Matplotlib tight_layout() function in pyplot module of the Matplotlib library is used to automatically adjust subplot parameters to give specified padding.

Matplotlib.pyplot.tight_layout() Syntax in Python

Syntax: matplotlib.pyplot.tight_layout(pad=1.08, h_pad=None, w_pad=None, rect=None)

Parameters: 

  • pad: This parameter is used for padding between the figure edge and the edges of subplots, as a fraction of the font size.
  • h_pad, w_pad: These parameter are used for padding (height/width) between edges of adjacent subplots, as a fraction of the font size.
  • rect: This parameter is rectangle in the normalized figure coordinate that the whole subplots area will fit into.

Returns: This method does not return any value.

Python Matplotlib.pyplot.tight_layout() Examples

Below are the examples by which we can get Matplotlib tight_layout function guide and also learn how to optimize plot layout with Matplotlib tight_layout() Function in Python:

Creating a Two-Paneled Figure using Matplotlib tight_layout() Function

In this example, two side-by-side plots are created using Matplotlib. Each plot displays multiple line series with legends positioned at the top corners.

Python3




import numpy as np
import matplotlib.pyplot as plt
 
fig, axs = plt.subplots(1, 2)
 
x = np.arange(0.0, 2.0, 0.02)
y1 = np.sin(2 * np.pi * x)
y2 = np.exp(-x)
l1, = axs[0].plot(x, y1)
l2, = axs[0].plot(x, y2, marker='o')
 
y3 = np.sin(4 * np.pi * x)
y4 = np.exp(-2 * x)
l3, = axs[1].plot(x, y3, color='tab:green')
l4, = axs[1].plot(x, y4, color='tab:red', marker='o')
 
fig.legend((l1, l2), ('Line 1', 'Line 2'), 'upper left')
fig.legend((l3, l4), ('Line 3', 'Line 4'), 'upper right')
 
 
fig.suptitle('matplotlib.pyplot.tight_layout() Example')
plt.tight_layout()
plt.show()


Output:

Plotting a Logarithmically Scaled Frequency Response using Matplotlib

In this example, a logarithmically-scaled frequency response plot is generated using Matplotlib, with frequency values formatted in engineering notation.

Python3




import matplotlib.pyplot as plt
import numpy as np
from matplotlib.ticker import EngFormatter
 
prng = np.random.RandomState(19680801)
 
xs = np.logspace(1, 9, 100)
ys = (0.8 + 0.4 * prng.uniform(size=100)) * np.log10(xs)**2
 
plt.xscale('log')
 
formatter0 = EngFormatter(unit='Hz')
plt.plot(xs, ys)
plt.xlabel('Frequency')
 
plt.title('matplotlib.pyplot.tight_layout() Example')
plt.tight_layout()
plt.show()


Output:



Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads