Introduction
Matplotlib est une bibliothèque Python populaire utilisée pour la visualisation de données. Elle fournit une large gamme d'outils pour créer des graphiques, des diagrammes et autres visualisations. Dans ce tutoriel, vous allez apprendre à créer un diagramme en barres avec des gradients à l'aide de Matplotlib.
Conseils sur la machine virtuelle
Une fois le démarrage de la machine virtuelle terminé, cliquez sur le coin supérieur gauche pour basculer vers l'onglet Carnet d'adresses 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, qui sont NumPy et Matplotlib. NumPy est une bibliothèque utilisée pour les calculs numériques, tandis que Matplotlib est une bibliothèque utilisée pour la visualisation de données.
import matplotlib.pyplot as plt
import numpy as np
Fixez la graine aléatoire
Nous allons fixer la graine aléatoire pour nous assurer d'obtenir les mêmes nombres aléatoires chaque fois que nous exécutons le code. Cela se fait à l'aide de la fonction np.random.seed().
np.random.seed(19680801)
Définissez la fonction d'image à gradient
Nous devons définir une fonction qui créera une image à gradient basée sur une carte de couleurs. Cette fonction prendra un objet d'axes, la direction du gradient et la plage de la carte de couleurs à utiliser. La fonction générera ensuite l'image à gradient et la renverra.
def gradient_image(ax, direction=0.3, cmap_range=(0, 1), **kwargs):
"""
Dessine une image à gradient basée sur une carte de couleurs.
Paramètres
----------
ax : Axes
Les axes sur lesquels dessiner.
direction : float
La direction du gradient. Il s'agit d'un nombre dans
la plage 0 (=vertical) à 1 (=horizontal).
cmap_range : float, float
La fraction (cmin, cmax) de la carte de couleurs qui doit être
utilisée pour le gradient, où la carte de couleurs complète est (0, 1).
**kwargs
Autres paramètres sont transmis à `.Axes.imshow()`.
En particulier, *cmap*, *extent* et *transform* peuvent être utiles.
"""
phi = direction * np.pi / 2
v = np.array([np.cos(phi), np.sin(phi)])
X = np.array([[v @ [1, 0], v @ [1, 1]],
[v @ [0, 0], v @ [0, 1]]])
a, b = cmap_range
X = a + (b - a) / X.max() * X
im = ax.imshow(X, interpolation='bicubic', clim=(0, 1),
aspect='auto', **kwargs)
return im
Définissez la fonction de barre à gradient
Ensuite, nous devons définir une fonction qui créera une barre à gradient. Cette fonction prendra l'objet d'axes, les coordonnées x et y de la barre, la largeur de la barre et la position du bas de la barre. La fonction créera ensuite une image à gradient pour chaque barre et la renverra.
def gradient_bar(ax, x, y, width=0.5, bottom=0):
for left, top in zip(x, y):
right = left + width
gradient_image(ax, extent=(left, right, bottom, top),
cmap=plt.cm.Blues_r, cmap_range=(0, 0.8))
Créez le tracé
Maintenant, nous pouvons créer le tracé. Nous allons tout d'abord créer une figure et un objet d'axes. Nous définirons ensuite les limites x et y des axes. Nous créerons un fond à gradient à l'aide de la fonction gradient_image(). Enfin, nous créerons un ensemble de données aléatoires et utiliserons la fonction gradient_bar() pour créer le graphique en barres.
fig, ax = plt.subplots()
ax.set(xlim=(0, 10), ylim=(0, 1))
## image de fond
gradient_image(ax, direction=1, extent=(0, 1, 0, 1), transform=ax.transAxes,
cmap=plt.cm.RdYlGn, cmap_range=(0.2, 0.8), alpha=0.5)
N = 10
x = np.arange(N) + 0.15
y = np.random.rand(N)
gradient_bar(ax, x, y, width=0.7)
plt.show()
Sommaire
Dans ce tutoriel, vous avez appris à créer un graphique en barres avec des gradients à l'aide de Matplotlib. Vous avez appris à définir la fonction d'image à gradient et la fonction de barre à gradient, et à créer un tracé à l'aide de ces fonctions. Vous avez également appris à fixer la graine aléatoire et à importer les bibliothèques nécessaires.