Visualisation de graphiques ombrés avec Matplotlib

Beginner

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

Introduction

Dans ce laboratoire, vous allez découvrir le processus de création de graphiques ombrés dans Matplotlib en utilisant différentes techniques. Vous apprendrez à afficher une barre de couleur pour un graphique ombré, à éviter les valeurs aberrantes dans un graphique ombré et à afficher différentes variables à travers l'ombre et la couleur.

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 Notebook pour accéder à Jupyter Notebook pour la pratique.

Parfois, vous devrez peut-être attendre quelques secondes pour que Jupyter Notebook ait fini de charger. La validation des opérations ne peut pas être automatisée en raison des limites de Jupyter Notebook.

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.

Affichage d'une barre de couleur pour un graphique ombré

Dans cette étape, vous allez apprendre à afficher une barre de couleur numérique correcte pour un graphique ombré.

import matplotlib.pyplot as plt
import numpy as np

from matplotlib.colors import LightSource, Normalize

def display_colorbar():
    """Afficher une barre de couleur numérique correcte pour un graphique ombré."""
    y, x = np.mgrid[-4:2:200j, -4:2:200j]
    z = 10 * np.cos(x**2 + y**2)

    cmap = plt.cm.copper
    ls = LightSource(315, 45)
    rgb = ls.shade(z, cmap)

    fig, ax = plt.subplots()
    ax.imshow(rgb, interpolation='bilinear')

    ## Utiliser un artiste proxy pour la barre de couleur...
    im = ax.imshow(z, cmap=cmap)
    im.remove()
    fig.colorbar(im, ax=ax)

    ax.set_title('Utilisation d\'une barre de couleur avec un graphique ombré', size='x-large')

Éviter les valeurs aberrantes dans les graphiques ombrés

Dans cette étape, vous allez apprendre à utiliser une norm personnalisée pour contrôler la plage de valeurs de z affichées dans un graphique ombré.

def avoid_outliers():
    """Utiliser une norm personnalisée pour contrôler la plage de valeurs de z affichées dans un graphique ombré."""
    y, x = np.mgrid[-4:2:200j, -4:2:200j]
    z = 10 * np.cos(x**2 + y**2)

    ## Ajouter quelques valeurs aberrantes...
    z[100, 105] = 2000
    z[120, 110] = -9000

    ls = LightSource(315, 45)
    fig, (ax1, ax2) = plt.subplots(ncols=2, figsize=(8, 4.5))

    rgb = ls.shade(z, plt.cm.copper)
    ax1.imshow(rgb, interpolation='bilinear')
    ax1.set_title('Plage complète des données')

    rgb = ls.shade(z, plt.cm.copper, vmin=-10, vmax=10)
    ax2.imshow(rgb, interpolation='bilinear')
    ax2.set_title('Plage définie manuellement')

    fig.suptitle('Éviter les valeurs aberrantes dans les graphiques ombrés', size='x-large')

Affichage de différentes variables à travers l'ombre et la couleur

Dans cette étape, vous allez apprendre à afficher différentes variables à travers l'ombre et la couleur.

def shade_other_data():
    """Démontre l'affichage de différentes variables à travers l'ombre et la couleur."""
    y, x = np.mgrid[-4:2:200j, -4:2:200j]
    z1 = np.sin(x**2)  ## Données pour l'ombre de relief
    z2 = np.cos(x**2 + y**2)  ## Données pour la couleur

    norm = Normalize(z2.min(), z2.max())
    cmap = plt.cm.RdBu

    ls = LightSource(315, 45)
    rgb = ls.shade_rgb(cmap(norm(z2)), z1)

    fig, ax = plt.subplots()
    ax.imshow(rgb, interpolation='bilinear')
    ax.set_title('Ombre par une variable, couleur par une autre', size='x-large')

Sommaire

Dans ce laboratoire, vous avez appris à créer des graphiques ombrés dans Matplotlib en utilisant différentes techniques, notamment l'affichage d'une barre de couleur pour un graphique ombré, l'évitement des valeurs aberrantes dans un graphique ombré et l'affichage de différentes variables à travers l'ombre et la couleur. Ces techniques peuvent être utiles pour visualiser et explorer des données dans diverses applications.