Introduction
Dans la visualisation de données, il est essentiel d'étiqueter correctement les graduations des axes. La classe EngFormatter dans Matplotlib permet d'étiqueter les graduations d'un axe en utilisant la notation scientifique. La notation scientifique est une représentation mathématique des nombres qui utilise des puissances de dix avec un multiple de trois. C'est un moyen concise d'exprimer des nombres grands ou petits qui sont difficiles à lire ou à écrire en notation standard. Dans ce laboratoire, nous allons apprendre à étiqueter les graduations d'un axe en utilisant la notation scientifique.
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 la pratique.
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.
Importation des bibliothèques requises
La première étape consiste à importer les bibliothèques requises. Dans ce laboratoire, nous utiliserons Matplotlib, NumPy et EngFormatter.
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.ticker import EngFormatter
Création de données artificielles
Nous devons créer quelques données artificielles pour tracer. Dans ce laboratoire, nous tracerons le logarithme de la fréquence (en Hz) en fonction du logarithme de la puissance (en Watts). Nous utiliserons la bibliothèque numpy pour générer les données.
## Fixing random state for reproducibility
prng = np.random.RandomState(19680801)
## Create artificial data to plot.
## The x data span over several decades to demonstrate several SI prefixes.
xs = np.logspace(1, 9, 100)
ys = (0.8 + 0.4 * prng.uniform(size=100)) * np.log10(xs)**2
Création de la figure et des sous-graphiques
Nous devons créer une figure et des sous-graphiques pour afficher les données. Dans ce laboratoire, nous créerons deux sous-graphiques côte à côte.
## Figure width is doubled (2*6.4) to display nicely 2 subplots side by side.
fig, (ax0, ax1) = plt.subplots(nrows=2, figsize=(7, 9.6))
for ax in (ax0, ax1):
ax.set_xscale('log')
Étiqueter les graduations en notation scientifique
Nous allons maintenant étiqueter les graduations de l'axe des x en utilisant la notation scientifique. Dans le premier sous-graphique, nous utiliserons les paramètres par défaut, et dans le second sous-graphique, nous utiliserons les options places et sep pour spécifier le nombre de chiffres après la virgule et le séparateur entre le nombre et le préfixe/unité.
## Demo of the default settings, with a user-defined unit label.
ax0.set_title('Full unit ticklabels, w/ default precision & space separator')
formatter0 = EngFormatter(unit='Hz')
ax0.xaxis.set_major_formatter(formatter0)
ax0.plot(xs, ys)
ax0.set_xlabel('Frequency')
## Demo of the options `places` (number of digit after decimal point) and
## `sep` (separator between the number and the prefix/unit).
ax1.set_title('SI-prefix only ticklabels, 1-digit precision & '
'thin space separator')
formatter1 = EngFormatter(places=1, sep="\N{THIN SPACE}") ## U+2009
ax1.xaxis.set_major_formatter(formatter1)
ax1.plot(xs, ys)
ax1.set_xlabel('Frequency [Hz]')
Afficher le graphique
Nous allons maintenant afficher le graphique en utilisant la fonction plt.show().
plt.tight_layout()
plt.show()
Récapitulatif
Dans ce laboratoire, nous avons appris à étiqueter les graduations d'un axe en utilisant la notation scientifique. Nous avons utilisé la classe EngFormatter dans Matplotlib pour étiqueter les graduations de l'axe des x d'un graphique. Nous avons également appris à créer des sous-graphiques et à personnaliser les étiquettes des graduations en utilisant les options places et sep de la classe EngFormatter. La notation scientifique est un moyen concis et clair d'exprimer des nombres grands ou petits qui sont difficiles à lire ou à écrire en notation standard.