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.