Introduction
Dans ce laboratoire, vous allez apprendre à créer un graphique de plusieurs séries temporelles qui démontre le style personnalisé du cadre du tracé, des lignes d'échelle, des étiquettes d'échelle et des propriétés du graphique en ligne à l'aide de Matplotlib. Le graphique affichera les cours des actions de diverses entreprises sur une période de 32 ans.
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 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
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.cbook import get_sample_data
import matplotlib.transforms as mtransforms
Chargez les données sur les actions
with get_sample_data('Stocks.csv') as file:
stock_data = np.genfromtxt(
file, delimiter=',', names=True, dtype=None,
converters={0: lambda x: np.datetime64(x, 'D')}, skip_header=1)
Créez un objet figure et un objet axe
fig, ax = plt.subplots(1, 1, figsize=(6, 8), layout='constrained')
Définissez les couleurs à utiliser dans le tracé
ax.set_prop_cycle(color=[
'#1f77b4', '#aec7e8', '#ff7f0e', '#ffbb78', '#2ca02c', '#98df8a',
'#d62728', '#ff9896', '#9467bd', '#c5b0d5', '#8c564b', '#c49c94',
'#e377c2', '#f7b6d2', '#7f7f7f', '#c7c7c7', '#bcbd22', '#dbdb8d',
'#17becf', '#9edae5'])
Définissez les noms et les symboles boursiers des actions à tracer
stocks_name = ['IBM', 'Apple', 'Microsoft', 'Xerox', 'Amazon', 'Dell',
'Alphabet', 'Adobe', 'S&P 500', 'NASDAQ']
stocks_ticker = ['IBM', 'AAPL', 'MSFT', 'XRX', 'AMZN', 'DELL', 'GOOGL',
'ADBE', 'GSPC', 'IXIC']
Ajustez manuellement les positions des étiquettes verticalement pour éviter les chevauchements
y_offsets = {k: 0 for k in stocks_ticker}
y_offsets['IBM'] = 5
y_offsets['AAPL'] = -5
y_offsets['AMZN'] = -6
Tracez chaque action séparément avec sa propre couleur
for nn, column in enumerate(stocks_ticker):
## Tracez chaque ligne séparément avec sa propre couleur.
## Ne pas inclure de données avec des valeurs NaN.
good = np.nonzero(np.isfinite(stock_data[column]))
line, = ax.plot(stock_data['Date'][good], stock_data[column][good], lw=2.5)
## Ajoutez une étiquette de texte à l'extrémité droite de chaque ligne. La plupart du code ci-dessous
## consiste à ajouter des décalages de position verticale car certaines étiquettes se chevauchaient.
y_pos = stock_data[column][-1]
## Utilisez une transformation de décalage, en points, pour tout texte qui doit être déplacé
## vers le haut ou le bas.
offset = y_offsets[column] / 72
trans = mtransforms.ScaledTranslation(0, offset, fig.dpi_scale_trans)
trans = ax.transData + trans
## Encore une fois, assurez-vous que toutes les étiquettes sont suffisamment grandes pour être aisément lues
## par le spectateur.
ax.text(np.datetime64('2022-10-01'), y_pos, stocks_name[nn],
color=line.get_color(), transform=trans)
Définissez les limites de l'axe des x et de l'axe des y, et ajoutez un titre et une grille
ax.set_xlim(np.datetime64('1989-06-01'), np.datetime64('2023-01-01'))
fig.suptitle("Technology company stocks prices dollars (1990-2022)", ha="center")
ax.spines[:].set_visible(False)
ax.xaxis.tick_bottom()
ax.yaxis.tick_left()
ax.set_yscale('log')
ax.grid(True,'major', 'both', ls='--', lw=.5, c='k', alpha=.3)
ax.tick_params(axis='both', which='both', labelsize='large',
bottom=False, top=False, labelbottom=True,
left=False, right=False, labelleft=True)
Affichez le graphique
plt.show()
Sommaire
Dans ce laboratoire, vous avez appris à créer un graphique de plusieurs séries temporelles qui démontre le style personnalisé du cadre du tracé, des lignes d'échelle, des étiquettes d'échelle et des propriétés du graphique en ligne à l'aide de Matplotlib. Vous avez également appris à tracer chaque action séparément avec sa propre couleur, à définir les limites de l'axe des x et de l'axe des y, et à ajouter un titre et une grille.