Démo d'axes parasites

Beginner

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

Introduction

Dans ce laboratoire, vous allez apprendre à créer des axes parasites à l'aide des modules mpl_toolkits.axes_grid1.parasite_axes.HostAxes et mpl_toolkits.axes_grid1.parasite_axes.ParasiteAxes dans Matplotlib. Les axes parasites partagent l'échelle x avec un axe hôte, mais affichent une échelle différente dans la direction y.

Conseils sur la machine virtuelle

Une fois le démarrage de la machine virtuelle terminé, cliquez dans le coin supérieur gauche pour passer à 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ésoudrons rapidement le problème pour vous.

Importez les bibliothèques nécessaires

Tout d'abord, nous devons importer les bibliothèques nécessaires. Dans ce laboratoire, nous utiliserons matplotlib.pyplot pour tracer, mpl_toolkits.axes_grid1.parasite_axes.HostAxes et mpl_toolkits.axes_grid1.parasite_axes.ParasiteAxes pour créer un axe parasite.

import matplotlib.pyplot as plt
from mpl_toolkits.axisartist.parasite_axes import HostAxes

Créez une figure et ajoutez des axes hôtes

Nous créons une figure en utilisant la méthode plt.figure() et ajoutons un axe hôte en utilisant la méthode fig.add_axes(). Les axes hôtes partagent l'échelle x avec les axes parasites.

fig = plt.figure()
host = fig.add_axes([0.15, 0.1, 0.65, 0.8], axes_class=HostAxes)

Créez des axes parasites

Nous créons deux axes parasites en utilisant la méthode host.get_aux_axes(). Nous définissons viewlim_mode=None pour vous assurer que les axes parasites partagent la même échelle x que les axes hôtes. Nous définissons également sharex=host pour vous assurer que l'échelle x est partagée.

par1 = host.get_aux_axes(viewlim_mode=None, sharex=host)
par2 = host.get_aux_axes(viewlim_mode=None, sharex=host)

Masquez l'axe y droit des axes hôtes

Nous masquons l'axe y droit des axes hôtes en utilisant la méthode host.axis["right"].set_visible(False).

host.axis["right"].set_visible(False)

Affichez l'axe y droit du premier axe parasite

Nous affichons l'axe y droit du premier axe parasite en utilisant la méthode par1.axis["right"].set_visible(True). Nous définissons également par1.axis["right"].major_ticklabels.set_visible(True) et par1.axis["right"].label.set_visible(True) pour afficher les étiquettes d'échelle et l'étiquette de l'axe y droit.

par1.axis["right"].set_visible(True)
par1.axis["right"].major_ticklabels.set_visible(True)
par1.axis["right"].label.set_visible(True)

Ajoutez un axe y droit à l'axe parasite 2

Nous ajoutons un axe y droit au second axe parasite en utilisant la méthode par2.axis["right2"] = par2.new_fixed_axis(loc="right", offset=(60, 0)).

par2.axis["right2"] = par2.new_fixed_axis(loc="right", offset=(60, 0))

Tracez des données sur tous les axes

Nous traçons des données sur tous les axes en utilisant la méthode plot(). Nous définissons également les étiquettes et les limites pour tous les axes en utilisant la méthode set().

p1, = host.plot([0, 1, 2], [0, 1, 2], label="Density")
p2, = par1.plot([0, 1, 2], [0, 3, 2], label="Temperature")
p3, = par2.plot([0, 1, 2], [50, 30, 15], label="Velocity")

host.set(xlim=(0, 2), ylim=(0, 2), xlabel="Distance", ylabel="Density")
par1.set(ylim=(0, 4), ylabel="Temperature")
par2.set(ylim=(1, 65), ylabel="Velocity")

Ajoutez une légende et des couleurs aux axes

Nous ajoutons une légende aux axes hôtes en utilisant la méthode host.legend(). Nous définissons également la couleur de l'étiquette de l'axe y gauche des axes hôtes, l'étiquette de l'axe y droit du premier axe parasite et l'étiquette de l'axe y droit du second axe parasite pour qu'elles correspondent respectivement à leurs lignes en utilisant les méthodes host.axis["left"].label.set_color(p1.get_color()), par1.axis["right"].label.set_color(p2.get_color()) et par2.axis["right2"].label.set_color(p3.get_color()).

host.legend()

host.axis["left"].label.set_color(p1.get_color())
par1.axis["right"].label.set_color(p2.get_color())
par2.axis["right2"].label.set_color(p3.get_color())

Affichez le tracé

Nous affichons le tracé en utilisant la méthode plt.show().

plt.show()

Récapitulatif

Dans ce laboratoire, nous avons appris à créer un axe parasite à l'aide des modules mpl_toolkits.axes_grid1.parasite_axes.HostAxes et mpl_toolkits.axes_grid1.parasite_axes.ParasiteAxes dans Matplotlib. Nous avons également appris à tracer des données sur l'axe parasite et à partager l'échelle x avec l'axe hôte.