Introduction
Matplotlib est un puissant outil de visualisation de données pour Python. L'une de ses fonctionnalités est la capacité de créer des styles de ligne personnalisés pour les tracés. Dans ce laboratoire, nous allons apprendre à créer et à utiliser différents styles de ligne dans 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 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 des commentaires après la session, et nous résoudrons rapidement le problème pour vous.
Importez les bibliothèques requises
Pour utiliser Matplotlib, nous devons tout d'abord importer la bibliothèque. Nous importerons également la bibliothèque NumPy pour générer des données d'échantillonnage pour nos tracés.
import matplotlib.pyplot as plt
import numpy as np
Définissez les styles de ligne
Il existe différentes manières de définir les styles de ligne dans Matplotlib. Nous pouvons utiliser des styles prédéfinis tels que'solid' (solide), 'dashed' (tracé discontinu), 'dotted' (tracé pointillé) et 'dashdot' (tracé pointillé et discontinu). Nous pouvons également définir des styles de ligne personnalisés en utilisant un tuple de tirets.
linestyle_str = [
('solid','solide'), ## Identique à (0, ()) ou '-'
('dotted', 'pointillé'), ## Identique à (0, (1, 1)) ou ':'
('dashed', 'tracé discontinu'), ## Identique à '--'
('dashdot', 'tracé pointillé et discontinu')] ## Identique à '-.'
linestyle_tuple = [
('loosely dotted', (0, (1, 10))),
('dotted', (0, (1, 1))),
('densely dotted', (0, (1, 1))),
('long dash with offset', (5, (10, 3))),
('loosely dashed', (0, (5, 10))),
('dashed', (0, (5, 5))),
('densely dashed', (0, (5, 1))),
('loosely dashdotted', (0, (3, 10, 1, 10))),
('dashdotted', (0, (3, 5, 1, 5))),
('densely dashdotted', (0, (3, 1, 1, 1))),
('dashdotdotted', (0, (3, 5, 1, 5, 1, 5))),
('loosely dashdotdotted', (0, (3, 10, 1, 10, 1, 10))),
('densely dashdotdotted', (0, (3, 1, 1, 1, 1, 1)))]
Créez une fonction pour tracer les styles de ligne
Nous pouvons créer une fonction pour tracer les différents styles de ligne. La fonction prend un objet d'axe, une liste de styles de ligne et un titre en tant que paramètres d'entrée.
def plot_linestyles(ax, linestyles, title):
X, Y = np.linspace(0, 100, 10), np.zeros(10)
yticklabels = []
for i, (name, linestyle) in enumerate(linestyles):
ax.plot(X, Y+i, linestyle=linestyle, linewidth=1.5, color='black')
yticklabels.append(name)
ax.set_title(title)
ax.set(ylim=(-0.5, len(linestyles)-0.5),
yticks=np.arange(len(linestyles)),
yticklabels=yticklabels)
ax.tick_params(left=False, bottom=False, labelbottom=False)
ax.spines[:].set_visible(False)
for i, (name, linestyle) in enumerate(linestyles):
ax.annotate(repr(linestyle),
xy=(0.0, i), xycoords=ax.get_yaxis_transform(),
xytext=(-6, -12), textcoords='offset points',
color="blue", fontsize=8, ha="right", family="monospace")
Créez le tracé
Nous pouvons créer le tracé en appelant la fonction plot_linestyles pour chaque ensemble de styles de ligne.
fig, (ax0, ax1) = plt.subplots(2, 1, figsize=(10, 8), height_ratios=[1, 3])
plot_linestyles(ax0, linestyle_str[::-1], title='Named linestyles')
plot_linestyles(ax1, linestyle_tuple[::-1], title='Parametrized linestyles')
plt.tight_layout()
plt.show()
Interprétez le tracé
Le tracé obtenu montre les différents styles de ligne. Le tracé supérieur montre les styles de ligne nommés tandis que le tracé inférieur montre les styles de ligne paramétrés. Les annotations sur le côté droit montrent les tuples de tirets utilisés pour chaque style de ligne.
Sommaire
Dans ce laboratoire, nous avons appris à créer et à utiliser différents styles de ligne dans Matplotlib. Nous avons défini les styles de ligne à l'aide de styles prédéfinis et de tuples de tirets. Nous avons également créé une fonction pour tracer les différents styles de ligne et interprété le tracé obtenu.