Personnalisation des visualisations de diagrammes à violon

PythonPythonBeginner
Pratiquer maintenant

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

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire, nous allons apprendre à personnaliser les diagrammes à violon à l'aide de Matplotlib. Les diagrammes à violon sont un outil puissant pour visualiser la distribution et la densité des données. En personnalisant l'apparence du graphique, nous pouvons créer des visualisations plus informatives et visuellement attrayantes.

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 d'adresses 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.

Créer des données de test

Tout d'abord, nous allons créer quelques données de test pour les utiliser dans le diagramme à violon. Nous utiliserons NumPy pour générer quatre tableaux de 100 valeurs distribuées normalement avec des écarts-types croissants.

import matplotlib.pyplot as plt
import numpy as np

## create test data
np.random.seed(19680801)
data = [sorted(np.random.normal(0, std, 100)) for std in range(1, 5)]

Créer un diagramme à violon par défaut

Ensuite, nous allons créer un diagramme à violon par défaut à l'aide de la fonction violinplot de Matplotlib. Cela servira de référence pour la comparaison lorsque nous personnaliserons le graphique dans les étapes suivantes.

## create default violin plot
fig, ax1 = plt.subplots()
ax1.set_title('Default Violin Plot')
ax1.set_ylabel('Observed Values')
ax1.violinplot(data)

Personnaliser l'apparence du diagramme à violon

Maintenant, nous allons personnaliser l'apparence du diagramme à violon. Tout d'abord, nous allons limiter ce que Matplotlib dessine en définissant les arguments showmeans, showmedians et showextrema sur False. Ensuite, nous allons changer la couleur et l'opacité des corps des violons en utilisant les méthodes set_facecolor et set_alpha. Enfin, nous allons ajouter une représentation simplifiée d'un diagramme en boîte au-dessus du diagramme à violon, en utilisant la fonction percentile de NumPy pour calculer les quartiles, les médianes et les barres extrêmes.

## customize violin plot appearance
fig, ax2 = plt.subplots()
ax2.set_title('Customized Violin Plot')
ax2.set_ylabel('Observed Values')

## create violin plot
parts = ax2.violinplot(
        data, showmeans=False, showmedians=False,
        showextrema=False)

## customize violin bodies
for pc in parts['bodies']:
    pc.set_facecolor('#D43F3A')
    pc.set_edgecolor('black')
    pc.set_alpha(1)

## add box plot
quartile1, medians, quartile3 = np.percentile(data, [25, 50, 75], axis=1)
whiskers = np.array([
    adjacent_values(sorted_array, q1, q3)
    for sorted_array, q1, q3 in zip(data, quartile1, quartile3)])
whiskers_min, whiskers_max = whiskers[:, 0], whiskers[:, 1]

inds = np.arange(1, len(medians) + 1)
ax2.scatter(inds, medians, marker='o', color='white', s=30, zorder=3)
ax2.vlines(inds, quartile1, quartile3, color='k', linestyle='-', lw=5)
ax2.vlines(inds, whiskers_min, whiskers_max, color='k', linestyle='-', lw=1)

Définir le style des axes

Enfin, nous allons définir le style de l'axe des x en spécifiant les étiquettes et les limites des graduations. Nous définirons une fonction d'aide set_axis_style pour y parvenir.

## set style for the axes
labels = ['A', 'B', 'C', 'D']
set_axis_style(ax2, labels)

def set_axis_style(ax, labels):
    ax.set_xticks(np.arange(1, len(labels) + 1))
    ax.set_xticklabels(labels)
    ax.set_xlim(0.25, len(labels) + 0.75)
    ax.set_xlabel('Sample Name')

Sommaire

Dans ce laboratoire, nous avons appris à personnaliser l'apparence des diagrammes à violon à l'aide de Matplotlib. Nous avons créé un diagramme à violon par défaut, puis l'avons modifié en changeant la couleur et l'opacité des corps des violons, et en ajoutant une représentation simplifiée d'un diagramme en boîte au-dessus. Nous avons également défini le style des étiquettes et des limites des graduations de l'axe des x. En personnalisant l'apparence du graphique, nous pouvons créer des visualisations plus informatives et visuellement attrayantes.