Matplotlib is a library in Python and it is numerical – mathematical extension for NumPy library. The Axes Class contains most of the figure elements: Axis, Tick, Line2D, Text, Polygon, etc., and sets the coordinate system. And the instances of Axes supports callbacks through a callbacks attribute.
matplotlib.axes.Axes.set_axes_locator() Function
The Axes.set_axes_locator() function in axes module of matplotlib library is used to set the axes locator.
Syntax: Axes.set_axes_locator(self, locator)
Parameters: This method accepts only one parameters.
- locator : This parameter is Callable with values and syntax like – [[Axes, Renderer], Bbox].
Return value: This method does not returns any value.
Below examples illustrate the matplotlib.axes.Axes.set_axes_locator() function in matplotlib.axes:
Example 1:
# Implementation of matplotlib function from mpl_toolkits.axes_grid1 import Size, Divider
import matplotlib.pyplot as plt
fig = plt.figure( 1 , ( 6 , 6 ))
value1 = [Size.Fixed( 2. ), Size.Fixed(. 8 ), Size.Fixed( 1.2 ),
Size.Fixed(. 7 )]
value2 = [Size.Fixed( 1.2 ), Size.Fixed(. 7 ), Size.Fixed( 2. )]
polygon = ( 0.2 , 0.2 , 0.4 , 0.4 )
resultant = Divider(fig, polygon, value1,
value2, aspect = False )
ax1 = fig.add_axes(polygon, label = "2" )
ax2 = fig.add_axes(polygon, label = "3" )
ax3 = fig.add_axes(polygon, label = "1" )
ax4 = fig.add_axes(polygon, label = "4" )
ax1.set_axes_locator(resultant.new_locator(nx = 0 ,
ny = 0 ))
ax2.set_axes_locator(resultant.new_locator(nx = 0 ,
ny = 2 ))
ax3.set_axes_locator(resultant.new_locator(nx = 3 ,
ny = 2 ))
ax4.set_axes_locator(resultant.new_locator(nx = 3 ,
nx1 = 4 , ny = 0 ))
fig.suptitle('matplotlib.axes.Axes.set_axes_locator()\ function Example\n\n', fontweight = "bold" )
plt.show() |
Output:
Example 2:
# Implementation of matplotlib function import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.axes_grid1.axes_divider import HBoxDivider
import mpl_toolkits.axes_grid1.axes_size as Size
arr1 = np.arange( 40 ).reshape(( 8 , 5 ))
arr2 = np.arange( 12 ).reshape(( 3 , 4 ))
fig, (ax1, ax2) = plt.subplots( 1 , 2 )
ax1.imshow(arr1) ax2.imshow(arr2) rect = 111 pad = 1
for ax in [ax1, ax2]:
ax.locator_params(nbins = 1 )
ax.xaxis.set_visible( False )
ax.yaxis.set_visible( False )
h1, v1 = Size.AxesX(ax1), Size.AxesY(ax1)
h2, v2 = Size.AxesX(ax2), Size.AxesY(ax2)
pad_v = Size.Scaled( 1 )
pad_h = Size.Fixed(pad)
my_divider = HBoxDivider(fig, rect,
horizontal = [h1, pad_h, h2],
vertical = [v1, pad_v, v2])
ax1.set_axes_locator(my_divider.new_locator( 0 ))
ax2.set_axes_locator(my_divider.new_locator( 2 ))
ax3 = plt.axes([ 0.4 , 0.5 , 0.001 , 0.001 ], frameon = False )
ax3.xaxis.set_visible( False )
ax3.yaxis.set_visible( False )
ax3.annotate( "GeeksforGeeks\n matplotlib module \n Axes class" ,
( 1 , 0.5 ),
xycoords = "axes fraction" ,
va = "center" , ha = "center" ,
bbox = dict (boxstyle = " round ,
pad = 1 ", fc =" w"))
fig.suptitle('matplotlib.axes.Axes.set_axes_locator()\ function Example\n\n', fontweight = "bold" )
plt.show() |
Output: