Seaborn - Figura estética

Visualizar datos es un paso y hacer que los datos visualizados sean más agradables es otro paso. La visualización juega un papel vital en la comunicación de conocimientos cuantitativos a una audiencia para captar su atención.

Estética significa un conjunto de principios relacionados con la naturaleza y la apreciación de la belleza, especialmente en el arte. La visualización es un arte de representar datos de la forma más eficaz y sencilla posible.

La biblioteca de Matplotlib admite en gran medida la personalización, pero saber qué configuraciones modificar para lograr una trama atractiva y anticipada es lo que uno debe tener en cuenta para hacer uso de ella. A diferencia de Matplotlib, Seaborn viene con temas personalizados y una interfaz de alto nivel para personalizar y controlar el aspecto de las figuras de Matplotlib.

Ejemplo

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()

Así es como se ve una trama con los valores predeterminados de Matplotlib:

Para cambiar el mismo gráfico a los valores predeterminados de Seaborn, use el set() función -

Ejemplo

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()

Salida

Las dos figuras anteriores muestran la diferencia en los gráficos predeterminados de Matplotlib y Seaborn. La representación de los datos es la misma, pero el estilo de representación varía en ambos.

Básicamente, Seaborn divide los parámetros de Matplotlib en dos grupos

  • Estilos de trama
  • Escala de parcela

Estilos de figuras de Seaborn

La interfaz para manipular los estilos es set_style(). Con esta función puede establecer el tema de la trama. Según la última versión actualizada, a continuación se muestran los cinco temas disponibles.

  • Darkgrid
  • Whitegrid
  • Dark
  • White
  • Ticks

Intentemos aplicar un tema de la lista mencionada anteriormente. El tema predeterminado de la trama serádarkgrid que hemos visto en el ejemplo anterior.

Ejemplo

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()

Salida

La diferencia entre los dos gráficos anteriores es el color de fondo

Eliminación de espinas de ejes

En los temas de blanco y garrapatas, podemos eliminar las espinas del eje superior y derecho usando el despine() función.

Ejemplo

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()

Salida

En los gráficos regulares, usamos solo los ejes izquierdo e inferior. Utilizando eldespine() función, podemos evitar las espinas innecesarias de los ejes derecho y superior, que no es compatible con Matplotlib.

Anulando los elementos

Si desea personalizar los estilos de Seaborn, puede pasar un diccionario de parámetros al set_style() función. Los parámetros disponibles se ven usandoaxes_style() función.

Ejemplo

import seaborn as sb
print sb.axes_style

Salida

{'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 alteración de los valores de cualquiera de los parámetros alterará el estilo del gráfico.

Ejemplo

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()

Salida

Escalar elementos de la gráfica

También tenemos control sobre los elementos de la trama y podemos controlar la escala de la trama usando el set_context()función. Tenemos cuatro plantillas preestablecidas para contextos, según el tamaño relativo, los contextos se nombran de la siguiente manera

  • Paper
  • Notebook
  • Talk
  • Poster

De forma predeterminada, el contexto se establece en cuaderno; y se utilizó en las parcelas anteriores.

Ejemplo

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()

Salida

El tamaño de salida de la parcela real es mayor en tamaño en comparación con las parcelas anteriores.

Note - Debido a la escala de las imágenes en nuestra página web, es posible que se pierda la diferencia real en nuestros gráficos de ejemplo.