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.