HOWTO · Seaborn

Définir la couleur d'arrière-plan des graphiques Seaborn

Ce tutoriel montre comment définir la couleur d'arrière-plan des graphiques Seaborn en Python. Découvrez plusieurs méthodes pour personnaliser vos graphiques, notamment set_style, set_palette et les réglages directs de l'arrière-plan de la figure. Sublimez vos visualisations de données avec des arrière-plans soignés et faites ressortir vos conclusions. Explorez des techniques pour créer des graphiques cohérents et visuellement attrayants qui racontent efficacement l'histoire de vos données.

Sur cette page

Pour définir précisément l’arrière-plan d’un graphique Seaborn, transmettez les paramètres Matplotlib axes.facecolor et figure.facecolor à seaborn.set(). Le premier colore la zone de tracé des axes; le second, la toile qui les entoure. Pour obtenir rapidement un aspect harmonieux, vous pouvez plutôt choisir un style prédéfini avec seaborn.set_style(). Optez pour une couleur précise si vous avez une teinte particulière en tête, ou pour un style prédéfini si son arrière-plan, sa grille et ses graduations conviennent à votre graphique.

Définir une couleur d’arrière-plan précise avec Seaborn et Matplotlib

Transmettez à seaborn.set() un dictionnaire rc contenant les paramètres Matplotlib à modifier. Les noms de couleurs et les codes hexadécimaux sont acceptés. Cet exemple autonome utilise un bleu pâle pour la zone de tracé et un blanc cassé pour la toile de la figure, puis enregistre celle-ci :

Exécutez cet exemple :

import matplotlib.pyplot as plt
import seaborn as sns

sns.set(rc={
    "axes.facecolor": "#EAF2F8",
    "figure.facecolor": "#F7F9FC",
})

fig, ax = plt.subplots()
sns.scatterplot(x=[1, 2, 3], y=[2, 4, 3], ax=ax)
fig.savefig("seaborn-background.png", dpi=150, bbox_inches="tight")

Remplacez l’une ou l’autre des valeurs de couleur par un nom comme lightblue ou par un autre code hexadécimal. Ces paramètres s’appliquent aux graphiques créés après l’appel. Pour ne modifier qu’un seul objet axes ou une seule figure, définissez directement sa couleur de fond comme indiqué ci-dessous.

Choisir un arrière-plan avec un style Seaborn

seaborn.set_style() sélectionne un style prédéfini qui règle plusieurs propriétés visuelles à la fois. Les styles disponibles sont darkgrid, whitegrid, dark, white et ticks. Par exemple, sns.set_style("whitegrid") donne aux axes un arrière-plan clair avec une grille, tandis que sns.set_style("dark") utilise une zone de tracé sombre sans grille. Un style agit sur d’autres éléments que l’arrière-plan : choisissez-en un dont la grille et les graduations conviennent aussi aux données.

Une palette détermine les couleurs attribuées aux séries de données, tandis que le contexte règle l’échelle de certains éléments, comme la taille des libellés et des lignes. sns.set_palette("deep") et sns.set_context("notebook") peuvent harmoniser les marques et le texte du graphique avec son style, mais aucun des deux ne définit la couleur d’arrière-plan. Pour regrouper les réglages, sns.set() accepte le style, la palette, le contexte et les paramètres rc.

Définir directement l’arrière-plan de la figure et des axes

Utilisez les objets Matplotlib lorsque vous voulez appliquer une couleur à une seule figure ou à une seule zone de tracé. Après fig, ax = plt.subplots(), fig.patch.set_facecolor("#F7F9FC") modifie toute la toile de la figure, y compris la marge autour des axes. ax.set_facecolor("#EAF2F8") ne modifie que la zone de tracé de ces axes. Ces méthodes sont pratiques lorsque plusieurs axes d’une même figure doivent avoir des arrière-plans différents : appelez set_facecolor() sur chaque axes à personnaliser.

Les valeurs figure.facecolor et axes.facecolor transmises par Seaborn deviennent les valeurs par défaut des figures et des axes créés ensuite. Les méthodes directes s’appliquent aux objets déjà créés : leur portée est ainsi explicite et elles ne modifient pas les graphiques ultérieurs.

Harmoniser le style du graphique, enregistrer la figure et vérifier sa lisibilité

L’exemple ci-dessus associe un arrière-plan de couleur précise à un nuage de points Seaborn et enregistre la figure avec fig.savefig(). Appelez la méthode d’enregistrement de la figure après avoir créé le graphique et défini ses couleurs. Si vous utilisez plutôt plt.savefig(), vérifiez que la figure voulue est bien la figure active. Il n’est pas nécessaire d’afficher le graphique avant de l’enregistrer.

Veillez à maintenir un contraste suffisant entre l’arrière-plan, les marques des données, les libellés et les lignes de la grille. Un arrière-plan sombre peut bien s’accorder avec des marques claires, tandis qu’un arrière-plan clair convient généralement à des marques sombres. Vérifiez que la grille reste visible sans détourner l’attention des données. Seaborn accepte les spécifications de couleur standard de Matplotlib, notamment les noms de couleurs et les codes hexadécimaux : choisissez des couleurs qui préservent la lisibilité à l’écran comme dans l’image enregistrée.