Changer la direction de l'axe dans Matplotlib

Beginner

This tutorial is from open-source community. Access the source code

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.