Matplotlib.axes.Axes.set_aspect() Example
Below are some examples by which we can understand how to set equal aspect ratio in Matplotlib and how to add labels to the axes in Matplotlib in Python:
- Data Scaling and Aspect Ratio
- Create Triangulation with equal aspect
Data Scaling and Aspect Ratio with Matplotlib set_aspect() Function
In this example, two subplots are created using Matplotlib, where the first subplot has no set_aspect applied, and the second subplot has a set_aspect value of 2. Both subplots use logarithmic scaling and adjustable data limits.
Python3
# ImpleIn Reviewtation of matplotlib function import matplotlib.pyplot as plt fig, (ax1, ax2) = plt.subplots( 1 , 2 ) ax1.set_xscale( "log" ) ax1.set_yscale( "log" ) ax1.set_adjustable( "datalim" ) ax1.plot([ 1 , 3 , 34 , 4 , 46 , 3 , 7 , 45 , 10 ], [ 1 , 9 , 27 , 8 , 29 , 84 , 78 , 19 , 48 ], "o-" , color = "green" ) ax1.set_xlim( 1e - 1 , 1e2 ) ax1.set_ylim( 1 , 1e2 ) ax1.set_title( "No set_aspect" ) ax2.set_xscale( "log" ) ax2.set_yscale( "log" ) ax2.set_adjustable( "datalim" ) ax2.plot([ 1 , 3 , 34 , 4 , 46 , 3 , 7 , 45 , 10 ], [ 1 , 9 , 27 , 8 , 29 , 84 , 78 , 19 , 48 ], "o-" , color = "green" ) ax2.set_xlim( 1e - 1 , 1e2 ) ax2.set_ylim( 1 , 1e2 ) ax2.set_aspect( 2 ) ax2.set_title( "set_aspect value = 2" ) fig.suptitle( 'matplotlib.axes.Axes.set_aspect() function Example\n' , fontweight = "bold" ) fig.canvas.draw() plt.show() |
Output:
Triangulation Using Matplotlib.axes.Axes.set_aspect() Function
In this example, the code generates a polar plot using Matplotlib with two subplots, where the first subplot lacks equal aspect scaling, and the second subplot enforces equal aspect scaling (‘equal’). Triangulation and masking are employed to highlight specific regions within the plot.
Python3
# ImpleIn Reviewtation of matplotlib function import matplotlib.pyplot as plt import matplotlib.tri as tri import numpy as np n_angles = 20 n_radii = 10 min_radius = 2 radii = np.linspace(min_radius, 0.95 , n_radii) angles = np.linspace( 0 , 4 * np.pi, n_angles, endpoint = False ) angles = np.repeat(angles[..., np.newaxis], n_radii, axis = 1 ) angles[:, 1 :: 2 ] + = np.pi / n_angles x = (radii * np.cos(angles)).flatten() y = (radii * np.sin(angles)).flatten() triang = tri.Triangulation(x, y) triang.set_mask(np.hypot(x[triang.triangles].mean(axis = 1 ), y[triang.triangles].mean(axis = 1 )) < min_radius) fig, (ax, ax1) = plt.subplots( 1 , 2 ) ax.triplot(triang, 'bo-' , lw = 1 , color = "green" ) ax.set_title( "No set_aspect" ) ax1.set_aspect( 'equal' ) ax1.triplot(triang, 'bo-' , lw = 1 , color = "green" ) ax1.set_title( "set_aspect value ='equal'" ) fig.suptitle( 'matplotlib.axes.Axes.set_aspect() function Example\n' , fontweight = "bold" ) fig.canvas.draw() plt.show() |
Output:
Matplotlib.axes.Axes.set_aspect() in Python
The Axes Class contains most of the figure elements: Axis, Tick, Line2D, Text, Polygon, etc., and sets the coordinate system. The instances of Axes support callbacks through a callbacks attribute. Matplotlib.axes.Axes.set_aspect()` in Python is a method used to set the aspect ratio of the axes in a Matplotlib plot.