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.