How to Adjust the Position of Axis Labels in Matplotlib?

When creating data visualizations with Matplotlib, properly positioning axis labels is crucial to prevent overlapping with other plot elements and ensure clear readability. This article explores three methods for adjusting axis label positions in Matplotlib subplots.

Understanding Matplotlib Subplots

Subplots allow multiple plots within a single figure, enabling easy comparison of datasets. Each subplot occupies a specific position in a grid defined by rows and columns.

Syntax

fig, ax = plt.subplots(nrows, ncolumns)

Parameters:

  • nrows ? Number of subplot rows in the grid
  • ncolumns ? Number of subplot columns in the grid

Method 1: Using set_label_coords()

The set_label_coords() method sets specific coordinates for axis labels using the axes coordinate system, where (0,0) is bottom-left and (1,1) is top-right ?

import matplotlib.pyplot as plt
import numpy as np

# Generate sample data
x = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])

# Create subplots
fig, ax = plt.subplots(2, 2, figsize=(10, 8))

# Plot data
ax[0,0].plot(x, np.sin(x))
ax[0,1].plot(x, np.cos(x))
ax[1,0].plot(x, x)
ax[1,1].plot(x, np.exp(x))

# Set labels and adjust positions using coordinates
ax[0,0].set_xlabel('Sin Graph')
ax[0,0].xaxis.set_label_coords(0.5, -0.1)

ax[0,1].set_xlabel('Cos Graph') 
ax[0,1].xaxis.set_label_coords(0.5, -0.1)

ax[1,0].set_xlabel('Linear Graph')
ax[1,0].xaxis.set_label_coords(0.5, -0.15)

ax[1,1].set_xlabel('Exponential Graph')
ax[1,1].xaxis.set_label_coords(0.5, -0.15)

plt.tight_layout()
plt.show()

Method 2: Using set_label_position()

The set_label_position() method positions labels at predefined locations: 'top', 'bottom', 'left', or 'right' ?

import matplotlib.pyplot as plt
import numpy as np

# Generate sample data
x = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])

# Create subplots
fig, ax = plt.subplots(2, 2, figsize=(10, 8))

# Plot data
ax[0,0].plot(x, np.sin(x))
ax[0,1].plot(x, np.cos(x))
ax[1,0].plot(x, x)
ax[1,1].plot(x, np.exp(x))

# Set labels and positions
ax[0,0].set_xlabel('Sin Graph')
ax[0,0].set_ylabel('Y Values')
ax[0,0].xaxis.set_label_position('bottom')
ax[0,0].yaxis.set_label_position('left')

ax[0,1].set_xlabel('Cos Graph')
ax[0,1].set_ylabel('Y Values')
ax[0,1].xaxis.set_label_position('top')
ax[0,1].yaxis.set_label_position('right')

ax[1,0].set_xlabel('Linear Graph')
ax[1,0].set_ylabel('Y Values')
ax[1,0].xaxis.set_label_position('bottom')
ax[1,0].yaxis.set_label_position('left')

ax[1,1].set_xlabel('Exponential Graph')
ax[1,1].set_ylabel('Y Values')
ax[1,1].xaxis.set_label_position('bottom')
ax[1,1].yaxis.set_label_position('right')

plt.tight_layout()
plt.show()

Method 3: Using labelpad Parameter

The labelpad parameter controls the distance between axis labels and tick labels, measured in points ?

import matplotlib.pyplot as plt
import numpy as np

# Generate sample data
x = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])

# Create subplots
fig, ax = plt.subplots(2, 2, figsize=(10, 8))

# Plot data
ax[0,0].plot(x, np.sin(x))
ax[0,1].plot(x, np.cos(x))
ax[1,0].plot(x, x)
ax[1,1].plot(x, np.exp(x))

# Set labels with different padding
ax[0,0].set_xlabel('Sin Graph', labelpad=5)
ax[0,0].set_ylabel('Y Values', labelpad=5)

ax[0,1].set_xlabel('Cos Graph', labelpad=15)
ax[0,1].set_ylabel('Y Values', labelpad=15)

ax[1,0].set_xlabel('Linear Graph', labelpad=10)
ax[1,0].set_ylabel('Y Values', labelpad=10)

ax[1,1].set_xlabel('Exponential Graph', labelpad=20)
ax[1,1].set_ylabel('Y Values', labelpad=20)

plt.tight_layout()
plt.show()

Comparison of Methods

Method Control Level Best For
set_label_coords() Precise positioning Custom label placement
set_label_position() Predefined positions Standard label arrangements
labelpad Distance adjustment Fine-tuning spacing

Conclusion

Proper axis label positioning enhances plot readability and prevents element overlap. Use set_label_coords() for precise positioning, set_label_position() for standard placements, and labelpad for spacing adjustments.

Updated on: 2026-03-27T07:03:14+05:30

8K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements