Introduction
Dans ce tutoriel, nous allons apprendre à utiliser la fonction LineCollection dans Matplotlib pour tracer plusieurs lignes efficacement d'un coup. Nous verrons comment tracer plusieurs lignes avec différentes couleurs et styles, et comment utiliser un tableau masqué pour masquer certaines valeurs. Nous apprendrons également à utiliser la fonction ScalarMappable.set_array pour mapper un tableau de valeurs aux couleurs.
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 limites 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
Avant de commencer, nous devons importer les bibliothèques nécessaires. Nous utiliserons matplotlib.pyplot et numpy.
import matplotlib.pyplot as plt
import numpy as np
Création des données
Ensuite, nous devons créer les données que nous utiliserons pour tracer les lignes. Nous utiliserons numpy pour créer un tableau 2D de valeurs x et y.
x = np.arange(100)
ys = x[:50, np.newaxis] + x[np.newaxis, :]
Création d'une collection de lignes
Maintenant, nous pouvons créer un objet LineCollection avec la fonction LineCollection. Nous pouvons définir les paramètres linewidths, colors et linestyle pour personnaliser l'apparence des lignes.
colors = plt.rcParams['axes.prop_cycle'].by_key()['color']
segs = np.zeros((50, 100, 2))
segs[:, :, 1] = ys
segs[:, :, 0] = x
segs = np.ma.masked_where((segs > 50) & (segs < 60), segs)
line_segments = LineCollection(segs, linewidths=(0.5, 1, 1.5, 2),
colors=colors, linestyle='solid')
Création d'un graphique
Nous pouvons maintenant créer un graphique à l'aide de matplotlib et ajouter l'objet LineCollection au graphique en utilisant la méthode add_collection de l'objet Axes.
fig, ax = plt.subplots()
ax.set_xlim(x.min(), x.max())
ax.set_ylim(ys.min(), ys.max())
ax.add_collection(line_segments)
ax.set_title('Line collection with masked arrays')
plt.show()
Mapper des couleurs à des valeurs
Nous pouvons également mapper un tableau de valeurs à des couleurs à l'aide de la fonction ScalarMappable.set_array. Nous allons créer un nouvel ensemble de données et un nouvel objet LineCollection avec le paramètre array défini sur les valeurs de x. Nous pouvons ensuite utiliser la méthode colorbar de l'objet Figure pour ajouter une barre de couleur au graphique.
N = 50
x = np.arange(N)
ys = [x + i for i in x]
segs = [np.column_stack([x, y]) for y in ys]
fig, ax = plt.subplots()
ax.set_xlim(np.min(x), np.max(x))
ax.set_ylim(np.min(ys), np.max(ys))
line_segments = LineCollection(segs, array=x,
linewidths=(0.5, 1, 1.5, 2),
linestyles='solid')
ax.add_collection(line_segments)
axcb = fig.colorbar(line_segments)
axcb.set_label('Line Number')
ax.set_title('Line Collection with mapped colors')
plt.sci(line_segments)
plt.show()
Sommaire
Dans ce tutoriel, nous avons appris à utiliser la fonction LineCollection dans Matplotlib pour tracer plusieurs lignes efficacement d'un coup. Nous avons vu comment tracer plusieurs lignes avec différentes couleurs et styles, et comment utiliser un tableau masqué pour masquer certaines valeurs. Nous avons également appris à utiliser la fonction ScalarMappable.set_array pour mapper un tableau de valeurs à des couleurs.