In Matplotlib, Axes class is the area where the data is plotted. It is one of the core building blocks of a plot and represents a single plot area inside a Figure. A single Figure can contain multiple Axes, but each Axes can belong to only one Figure.
Each Axes object contains:
- The x-axis and y-axis (for 2D plots),
- Optionally a z-axis (for 3D plots),
- The plot itself (lines, markers, etc.),
- Labels, titles and legends
The axes() function or add_axes() method can be used to manually create axes at specific locations within a figure.
axes() function
axes() function create a new set of axes inside a figure at a custom position. The position is given as a list: [left, bottom, width, height], where all values are between 0 and 1, showing how much space they take up compared to the full figure.
Syntax:
plt.axes([left, bottom, width, height])
Parameter:
- left: distance from the left side of the figure.
- bottom: distance from the bottom of the figure.
- width: width of the axes area.
- height: height of the axes area.
Example:
This code manually adds a custom-sized axes to a figure using plt.axes() and displays it with plt.show(). The position is set using normalized coordinates. This positions plot area centrally inside the figure window.
Python
import matplotlib.pyplot as plt
fig = plt.figure()
ax = plt.axes([0.1, 0.1, 0.8, 0.8]) # [left, bottom, width, height]
plt.show()
Output

Explanation:
In axes([0.1, 0.1, 0.8, 0.8])
- 0.1: 10% from the left
- 0.1: 10% from the bottom
- 0.8: 80% width of the figure
- 0.8: 80% height of the figure
add_axes() method
add_axes() method adds a new axes to a figure. It allows the user to set the exact position and size of the axes using [left, bottom, width, height] relative to the figure size.
Syntax:
fig.add_axes([left, bottom, width, height])
Example:
This example shows how to add an axes to a figure using add_axes() method. The axes fills the entire figure area, as specified by [0, 0, 1, 1] and plt.show() displays figure window.
Python
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_axes([0, 0, 1, 1])
plt.show()
Output

ax.plot() Function
ax.plot() function draws lines or markers on the axes. It lets user plot data points by connecting them with lines, making it useful for visualizing trends or comparisons.
Syntax:
ax.plot(X, Y, 'CLM')
Parameter:
- X: x-axis data
- Y: y-axis data
- CLM: format string (Color, Line style, Marker)
Example:
This code plots three points connected by a red dashed line with circle markers using ax.plot().
Python
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_axes([0.1, 0.1, 0.8, 0.8])
ax.plot([1, 2, 3], [4, 5, 6], 'ro--') # red color, circle marker, dashed line
plt.show()
Output
OutputExplanation:
- r: red color
- o: circle markers
- --: dashed line connecting the points
Common Marker Styles:
Characters | Description |
---|
. | Point Marker |
o | Circle Marker |
+ | Plus Marker |
s | Square Marker |
D | Diamond Marker |
H | Hexagon Marker |
ax.legend() Function
ax.legend() function adds a legend to the axes. It helps label and describe the plotted elements (like lines or markers) so the viewer knows what each one represents.
Syntax:
ax.legend(labels, loc)
Parameter:
- labels: List of labels for the plots
- loc: Legend location (e.g., 'upper left', 'lower right', etc.)
Example:
This code creates a figure with custom-sized axes and plots two lines labeled 'Line A' and 'Line B'. The ax.legend() function is used to display a legend in the upper right corner, helping to identify each line in the plot.
Python
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_axes([0.1, 0.1, 0.8, 0.8])
ax.plot([1, 2, 3], [4, 5, 6], label='Line A')
ax.plot([1, 2, 3], [6, 5, 4], label='Line B')
ax.legend(loc='upper right') # Add legend at the upper right
plt.show()
Output
Complete Example: Plotting Sine and Cosine Curves
This code plots sine and cosine curves using Matplotlib. It creates custom axes using coordinates, then plots cosine function with blue square markers and sine function with red circle markers. A legend and title are also added to label the curves and describe the plot.
Python
import matplotlib.pyplot as plt
import numpy as np
X = np.linspace(-np.pi, np.pi, 15)
C = np.cos(X)
S = np.sin(X)
# Create axes using coordinates
ax = plt.axes([0.1, 0.1, 0.8, 0.8])
# Plot cosine and sine
ax1 = ax.plot(X, C, 'bs:') # Blue squares with dotted line
ax2 = ax.plot(X, S, 'ro-') # Red circles with solid line
ax.legend(labels=('Cosine Function', 'Sine Function'), loc='upper left')
ax.set_title("Trigonometric Functions")
plt.show()
Output

Explanation:
- linspace(-np.pi, np.pi, 15): Creates 15 evenly spaced values between -π and π
- cos(X) calculates cosine of each value in X and sin(X) calculates sine of each value in X.
- plot(X, C, 'bs:'): Plots cosine function with blue square markers (bs) and a dotted line (:).
- plot(X, S, 'ro-'): Plots sine function with red circle markers (ro) and a solid line (-).