Seaborn - Figure Esthétique

La visualisation des données est une étape et rendre les données visualisées plus agréables en est une autre. La visualisation joue un rôle essentiel dans la communication d'informations quantitatives à un public pour attirer son attention.

L'esthétique signifie un ensemble de principes concernant la nature et l'appréciation de la beauté, en particulier dans l'art. La visualisation est un art de représenter les données de la manière la plus efficace et la plus simple possible.

La bibliothèque Matplotlib prend fortement en charge la personnalisation, mais savoir quels paramètres modifier pour obtenir un tracé attrayant et anticipé est ce dont il faut être conscient pour l'utiliser. Contrairement à Matplotlib, Seaborn est livré avec des thèmes personnalisés et une interface de haut niveau pour personnaliser et contrôler l'apparence des figurines Matplotlib.

Exemple

import numpy as np
from matplotlib import pyplot as plt
def sinplot(flip = 1):
   x = np.linspace(0, 14, 100)
   for i in range(1, 5): 
      plt.plot(x, np.sin(x + i * .5) * (7 - i) * flip)
sinplot()
plt.show()

Voici à quoi ressemble un tracé avec les valeurs par défaut Matplotlib -

Pour changer le même tracé en valeurs par défaut Seaborn, utilisez le set() fonction -

Exemple

import numpy as np
from matplotlib import pyplot as plt
def sinplot(flip = 1):
   x = np.linspace(0, 14, 100)
   for i in range(1, 5):
      plt.plot(x, np.sin(x + i * .5) * (7 - i) * flip)
import seaborn as sb
sb.set()
sinplot()
plt.show()

Production

Les deux figures ci-dessus montrent la différence entre les graphiques par défaut de Matplotlib et de Seaborn. La représentation des données est la même, mais le style de représentation varie dans les deux.

Fondamentalement, Seaborn divise les paramètres de Matplotlib en deux groupes -

  • Styles de tracé
  • Échelle de tracé

Styles de figurines Seaborn

L'interface de manipulation des styles est set_style(). En utilisant cette fonction, vous pouvez définir le thème du tracé. Selon la dernière version mise à jour, vous trouverez ci-dessous les cinq thèmes disponibles.

  • Darkgrid
  • Whitegrid
  • Dark
  • White
  • Ticks

Essayons d'appliquer un thème de la liste ci-dessus. Le thème par défaut du tracé seradarkgrid ce que nous avons vu dans l'exemple précédent.

Exemple

import numpy as np
from matplotlib import pyplot as plt
def sinplot(flip=1):
   x = np.linspace(0, 14, 100)
   for i in range(1, 5):
      plt.plot(x, np.sin(x + i * .5) * (7 - i) * flip)
import seaborn as sb
sb.set_style("whitegrid")
sinplot()
plt.show()

Production

La différence entre les deux tracés ci-dessus est la couleur d'arrière-plan

Retirer les épines des haches

Dans les thèmes blancs et coches, nous pouvons supprimer les épines des axes supérieur et droit à l'aide du bouton despine() fonction.

Exemple

import numpy as np
from matplotlib import pyplot as plt
def sinplot(flip=1):
   x = np.linspace(0, 14, 100)
   for i in range(1, 5):
      plt.plot(x, np.sin(x + i * .5) * (7 - i) * flip)
import seaborn as sb
sb.set_style("white")
sinplot()
sb.despine()
plt.show()

Production

Dans les graphiques réguliers, nous utilisons uniquement les axes gauche et inférieur. En utilisant ledespine() fonction, nous pouvons éviter les épines inutiles des axes droit et supérieur, ce qui n'est pas pris en charge dans Matplotlib.

Remplacer les éléments

Si vous souhaitez personnaliser les styles Seaborn, vous pouvez transmettre un dictionnaire de paramètres au set_style() fonction. Les paramètres disponibles sont affichés à l'aide deaxes_style() fonction.

Exemple

import seaborn as sb
print sb.axes_style

Production

{'axes.axisbelow'     : False,
'axes.edgecolor'      : 'white',
'axes.facecolor'      : '#EAEAF2',
'axes.grid'           : True,
'axes.labelcolor'     : '.15',
'axes.linewidth'      : 0.0,
'figure.facecolor'    : 'white',
'font.family'         : [u'sans-serif'],
'font.sans-serif'     : [u'Arial', u'Liberation  
                        Sans', u'Bitstream Vera Sans', u'sans-serif'],
'grid.color'          : 'white',
'grid.linestyle'      : u'-',
'image.cmap'          : u'Greys',
'legend.frameon'      : False,
'legend.numpoints'    : 1,
'legend.scatterpoints': 1,
'lines.solid_capstyle': u'round',
'text.color'          : '.15',
'xtick.color'         : '.15',
'xtick.direction'     : u'out',
'xtick.major.size'    : 0.0,
'xtick.minor.size'    : 0.0,
'ytick.color'         : '.15',
'ytick.direction'     : u'out',
'ytick.major.size'    : 0.0,
'ytick.minor.size'    : 0.0}

La modification des valeurs de l'un des paramètres modifie le style de tracé.

Exemple

import numpy as np
from matplotlib import pyplot as plt
def sinplot(flip=1):
   x = np.linspace(0, 14, 100)
   for i in range(1, 5):
      plt.plot(x, np.sin(x + i * .5) * (7 - i) * flip)
import seaborn as sb
sb.set_style("darkgrid", {'axes.axisbelow': False})
sinplot()
sb.despine()
plt.show()

Production

Mise à l'échelle des éléments de tracé

Nous contrôlons également les éléments de la parcelle et pouvons contrôler l'échelle de la parcelle à l'aide du set_context()fonction. Nous avons quatre modèles prédéfinis pour les contextes, basés sur la taille relative, les contextes sont nommés comme suit

  • Paper
  • Notebook
  • Talk
  • Poster

Par défaut, le contexte est défini sur notebook; et a été utilisé dans les graphiques ci-dessus.

Exemple

import numpy as np
from matplotlib import pyplot as plt
def sinplot(flip = 1):
   x = np.linspace(0, 14, 100)
   for i in range(1, 5):
      plt.plot(x, np.sin(x + i * .5) * (7 - i) * flip)
import seaborn as sb
sb.set_style("darkgrid", {'axes.axisbelow': False})
sinplot()
sb.despine()
plt.show()

Production

La taille de sortie du tracé réel est plus grande que celle des tracés ci-dessus.

Note - En raison de la mise à l'échelle des images sur notre page Web, vous pourriez manquer la différence réelle dans nos graphiques d'exemple.