Introduction
Dans ce laboratoire, vous allez apprendre à changer la direction de l'axe dans un tracé Matplotlib en utilisant la méthode set_axis_direction(). Cette méthode vous permet de changer la direction d'un axe dans l'une des quatre directions cardinaux : haut, bas, gauche ou droite.
Conseils sur la machine virtuelle
Une fois le démarrage de la machine virtuelle terminé, cliquez dans le coin supérieur gauche pour basculer vers l'onglet Carnet de notes pour accéder au carnet Jupyter pour pratiquer.
Parfois, vous devrez peut-être attendre quelques secondes pour que le carnet Jupyter ait fini de charger. La validation des opérations ne peut pas être automatisée en raison des limitations du carnet Jupyter.
Si vous rencontrez des problèmes pendant l'apprentissage, n'hésitez pas à demander à Labby. Donnez votre feedback après la session, et nous réglerons rapidement le problème pour vous.
Importation des bibliothèques
Tout d'abord, nous devons importer les bibliothèques nécessaires pour ce laboratoire. Nous allons utiliser numpy et matplotlib.
import matplotlib.pyplot as plt
import numpy as np
Configuration du tracé
Ensuite, nous allons définir une fonction setup_axes() qui configurera la projection polaire dans une boîte rectangulaire. Cette fonction utilise GridHelperCurveLinear pour créer une projection polaire avec une boîte rectangulaire.
from matplotlib.projections import PolarAxes
from matplotlib.transforms import Affine2D
import mpl_toolkits.axisartist as axisartist
import mpl_toolkits.axisartist.angle_helper as angle_helper
import mpl_toolkits.axisartist.grid_finder as grid_finder
from mpl_toolkits.axisartist.grid_helper_curvelinear import \
GridHelperCurveLinear
def setup_axes(fig, rect):
"""Projection polaire, mais dans une boîte rectangulaire."""
grid_helper = GridHelperCurveLinear(
Affine2D().scale(np.pi/180., 1.) + PolarAxes.PolarTransform(),
extreme_finder=angle_helper.ExtremeFinderCycle(
20, 20,
lon_cycle=360, lat_cycle=None,
lon_minmax=None, lat_minmax=(0, np.inf),
),
grid_locator1=angle_helper.LocatorDMS(12),
grid_locator2=grid_finder.MaxNLocator(5),
tick_formatter1=angle_helper.FormatterDMS(),
)
ax = fig.add_subplot(
rect, axes_class=axisartist.Axes, grid_helper=grid_helper,
aspect=1, xlim=(-5, 12), ylim=(-5, 10))
ax.axis[:].toggle(ticklabels=False)
ax.grid(color=".9")
return ax
Ajout d'un axe flottant
Nous allons définir deux fonctions qui ajouteront des axes flottants à notre tracé. La première fonction add_floating_axis1() ajoute un axe flottant au tracé avec une étiquette de theta = 30. La deuxième fonction add_floating_axis2() ajoute un axe flottant au tracé avec une étiquette de r = 6.
def add_floating_axis1(ax):
ax.axis["lat"] = axis = ax.new_floating_axis(0, 30)
axis.label.set_text(r"$\theta = 30^{\circ}$")
axis.label.set_visible(True)
return axis
def add_floating_axis2(ax):
ax.axis["lon"] = axis = ax.new_floating_axis(1, 6)
axis.label.set_text(r"$r = 6$")
axis.label.set_visible(True)
return axis
Changement de la direction de l'axe
Maintenant, nous allons créer une boucle pour configurer quatre tracés différents avec l'axe flottant dans chacune des quatre directions cardinaux. Dans la boucle, nous utiliserons add_floating_axis1() et add_floating_axis2() pour ajouter les axes flottants, et set_axis_direction() pour définir la direction de l'axe.
fig = plt.figure(figsize=(8, 4), layout="constrained")
for i, d in enumerate(["bottom", "left", "top", "right"]):
ax = setup_axes(fig, rect=241+i)
axis = add_floating_axis1(ax)
axis.set_axis_direction(d)
ax.set(title=d)
for i, d in enumerate(["bottom", "left", "top", "right"]):
ax = setup_axes(fig, rect=245+i)
axis = add_floating_axis2(ax)
axis.set_axis_direction(d)
ax.set(title=d)
plt.show()
Visualisation du tracé
Enfin, nous allons visualiser le tracé. Nous pouvons voir le même tracé avec l'axe flottant dans chacune des quatre directions cardinaux.
Résumé
Dans ce laboratoire, vous avez appris à changer la direction de l'axe dans un tracé Matplotlib en utilisant la méthode set_axis_direction(). En utilisant cette méthode, vous pouvez facilement changer la direction d'un axe vers l'une des quatre directions cardinaux : haut, bas, gauche ou droite.