Visualisation de données avec Matplotlib et Python

Beginner

This tutorial is from open-source community. Access the source code

Introduction

Dans ce laboratoire, nous utiliserons la bibliothèque Matplotlib de Python pour calculer la moyenne (mu) et l'écart-type (sigma) de 100 jeux de données et tracer mu en fonction de sigma. Nous ajouterons également une interactivité au tracé de sorte que lorsque vous cliquez sur l'un des points (mu, sigma), les données brutes du jeu de données qui a généré ce point seront tracées.

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.

Générer des données aléatoires

Tout d'abord, nous devons générer 100 jeux de données aléatoires, chacun contenant 1000 nombres aléatoires compris entre 0 et 1. Nous utiliserons le module random de numpy pour générer les données aléatoires.

import numpy as np

np.random.seed(19680801)

X = np.random.rand(100, 1000)

Calculer la moyenne et l'écart-type

Ensuite, nous allons calculer la moyenne et l'écart-type de chacun des 100 jeux de données. Nous utiliserons les fonctions mean et std de numpy pour calculer ces valeurs.

xs = np.mean(X, axis=1)
ys = np.std(X, axis=1)

Tracer les données

Maintenant, nous allons tracer mu en fonction de sigma à l'aide du module pyplot de Matplotlib. Nous allons créer un graphique en points à dispersion à l'aide des valeurs calculées pour mu et sigma. Nous ajouterons également une interactivité au graphique en définissant le paramètre picker sur True.

import matplotlib.pyplot as plt

fig, ax = plt.subplots()
ax.set_title('click on point to plot time series')
line, = ax.plot(xs, ys, 'o', picker=True, pickradius=5)

Ajouter de l'interactivité

Lorsque l'on clique sur un point du graphique en points à dispersion, on souhaite tracer les données brutes du jeu de données qui a généré ce point. Nous allons définir une fonction onpick qui sera appelée lorsqu'un point est cliqué. La fonction dessinera les données brutes et affichera la moyenne et l'écart-type pour ce jeu de données.

def onpick(event):

    if event.artist!= line:
        return

    N = len(event.ind)
    if not N:
        return

    figi, axs = plt.subplots(N, squeeze=False)
    for ax, dataind in zip(axs.flat, event.ind):
        ax.plot(X[dataind])
        ax.text(.05,.9, f'mu={xs[dataind]:1.3f}\nsigma={ys[dataind]:1.3f}',
                transform=ax.transAxes, va='top')
        ax.set_ylim(-0.5, 1.5)
    figi.show()


fig.canvas.mpl_connect('pick_event', onpick)

Afficher le graphique

Enfin, nous allons afficher le graphique à l'aide de la fonction show.

plt.show()

Sommaire

Dans ce laboratoire, nous avons appris à utiliser Matplotlib pour calculer la moyenne et l'écart-type de 100 jeux de données et tracer mu en fonction de sigma. Nous avons également ajouté de l'interactivité au graphique de sorte que lorsqu'un point est cliqué, les données brutes du jeu de données qui a généré ce point sont affichées. Ce laboratoire démontre la puissance et la flexibilité de Matplotlib pour explorer et visualiser des données.