Seaborn - Figura Estetica

La visualizzazione dei dati è un passo e rendere i dati visualizzati più piacevoli è un altro passo. La visualizzazione gioca un ruolo fondamentale nel comunicare intuizioni quantitative a un pubblico per catturare la sua attenzione.

Estetica significa un insieme di principi che riguardano la natura e l'apprezzamento della bellezza, specialmente nell'arte. La visualizzazione è un'arte di rappresentare i dati in modo efficace e più semplice possibile.

La libreria Matplotlib supporta fortemente la personalizzazione, ma sapere quali impostazioni modificare per ottenere una trama attraente e anticipata è ciò di cui si dovrebbe essere consapevoli per utilizzarla. A differenza di Matplotlib, Seaborn è ricco di temi personalizzati e un'interfaccia di alto livello per personalizzare e controllare l'aspetto delle figure Matplotlib.

Esempio

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

Ecco come appare una trama con i valori predefiniti Matplotlib -

Per modificare lo stesso grafico con le impostazioni predefinite di Seaborn, utilizzare il file set() funzione -

Esempio

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

Produzione

Le due figure precedenti mostrano la differenza nei grafici Matplotlib e Seaborn predefiniti. La rappresentazione dei dati è la stessa, ma lo stile di rappresentazione varia in entrambe.

Fondamentalmente, Seaborn divide i parametri Matplotlib in due gruppi:

  • Stili di trama
  • Scala del grafico

Stili di figura di Seaborn

L'interfaccia per manipolare gli stili è set_style(). Usando questa funzione puoi impostare il tema della trama. Secondo l'ultima versione aggiornata, di seguito sono riportati i cinque temi disponibili.

  • Darkgrid
  • Whitegrid
  • Dark
  • White
  • Ticks

Proviamo ad applicare un tema dall'elenco sopra menzionato. Il tema predefinito della trama saràdarkgrid che abbiamo visto nell'esempio precedente.

Esempio

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

Produzione

La differenza tra i due grafici precedenti è il colore di sfondo

Rimozione delle spine degli assi

Nei temi bianco e zecche, possiamo rimuovere le spine dell'asse superiore e destro usando il despine() funzione.

Esempio

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

Produzione

Nei grafici regolari, usiamo solo gli assi sinistro e inferiore. Usando ildespine() , possiamo evitare le spine dorsali degli assi destro e superiore non necessarie, che non sono supportate in Matplotlib.

Ignorare gli elementi

Se vuoi personalizzare gli stili Seaborn, puoi passare un dizionario di parametri al file set_style() funzione. I parametri disponibili vengono visualizzati utilizzandoaxes_style() funzione.

Esempio

import seaborn as sb
print sb.axes_style

Produzione

{'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 modifica dei valori di uno qualsiasi dei parametri altererà lo stile di stampa.

Esempio

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

Produzione

Scalare gli elementi del grafico

Abbiamo anche il controllo sugli elementi della trama e possiamo controllare la scala della trama utilizzando il set_context()funzione. Abbiamo quattro modelli preimpostati per i contesti, in base alla dimensione relativa, i contesti sono denominati come segue

  • Paper
  • Notebook
  • Talk
  • Poster

Per impostazione predefinita, il contesto è impostato su notebook; ed è stato utilizzato nelle trame sopra.

Esempio

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

Produzione

La dimensione dell'output del grafico effettivo è di dimensioni maggiori rispetto ai grafici precedenti.

Note - A causa del ridimensionamento delle immagini sulla nostra pagina Web, potresti perdere la differenza effettiva nei nostri grafici di esempio.