Tutoriel sur l'histogramme en escalier avec Matplotlib

Beginner

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

Introduction

Matplotlib est une bibliothèque de visualisation de données en Python. Elle est largement utilisée pour créer une large gamme de visualisations telles que des graphiques linéaires, des graphiques de dispersion, des graphiques en barres, des histogrammes, etc. Ce tutoriel se concentrera sur la création d'histogrammes étape par étape à l'aide de Matplotlib.

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 limitations 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.

Importez les bibliothèques et les modules nécessaires

import matplotlib.pyplot as plt
import numpy as np

from matplotlib.patches import StepPatch

Préparez les données

np.random.seed(0)
h, edges = np.histogram(np.random.normal(5, 3, 5000),
                        bins=np.linspace(0, 10, 20))

Créez un histogramme en escalier simple

plt.stairs(h, edges, label='Simple histogram')
plt.legend()
plt.show()

Modifiez la ligne de base de l'histogramme en escalier

plt.stairs(h, edges + 5, baseline=50, label='Modified baseline')
plt.legend()
plt.show()

Créez un histogramme en escalier sans bords

plt.stairs(h, edges + 10, baseline=None, label='No edges')
plt.legend()
plt.show()

Créez un histogramme rempli

plt.stairs(np.arange(1, 6, 1), fill=True,
              label='Filled histogram\nw/ automatic edges')
plt.legend()
plt.show()

Créez un histogramme hachuré

plt.stairs(np.arange(1, 6, 1)*0.3, np.arange(2, 8, 1),
              orientation='horizontal', hatch='//',
              label='Hatched histogram\nw/ horizontal orientation')
plt.legend()
plt.show()

Créez un artiste StepPatch

patch = StepPatch(values=[1, 2, 3, 2, 1],
                  edges=range(1, 7),
                  label=('Patch dérivé de l\'objet sous-jacent\n'
                         'avec le comportement par défaut de la couleur de bord/couleur de face'))
plt.gca().add_patch(patch)
plt.xlim(0, 7)
plt.ylim(-1, 5)
plt.legend()
plt.show()

Créez des histogrammes superposés

A = [[0, 0, 0],
     [1, 2, 3],
     [2, 4, 6],
     [3, 6, 9]]

for i in range(len(A) - 1):
    plt.stairs(A[i+1], baseline=A[i], fill=True)
plt.show()

Comparez .pyplot.step et .pyplot.stairs

bins = np.arange(14)
centers = bins[:-1] + np.diff(bins) / 2
y = np.sin(centers / 2)

plt.step(bins[:-1], y, where='post', label='step(where="post")')
plt.plot(bins[:-1], y, 'o--', color='grey', alpha=0.3)

plt.stairs(y - 1, bins, baseline=None, label='stairs()')
plt.plot(centers, y - 1, 'o--', color='grey', alpha=0.3)
plt.plot(np.repeat(bins, 2), np.hstack([y[0], np.repeat(y, 2), y[-1]]) - 1,
         'o', color='red', alpha=0.2)

plt.legend()
plt.title('step() vs. stairs()')
plt.show()

Sommaire

Ce tutoriel a abordé les bases de la création d'histogrammes en escalier à l'aide de Matplotlib. Nous avons appris à créer des histogrammes en escalier simples, à modifier la ligne de base des histogrammes, à créer des histogrammes remplis et hachurés, et à créer des histogrammes superposés. Nous avons également comparé les différences entre .pyplot.step et .pyplot.stairs.