Seaborn - estetyczna figura

Wizualizacja danych to jeden krok, a dalsze uczynienie wizualizowanych danych przyjemniejszymi to kolejny krok. Wizualizacja odgrywa istotną rolę w przekazywaniu odbiorcom ilościowych spostrzeżeń, aby przyciągnąć ich uwagę.

Estetyka to zbiór zasad dotyczących natury i docenienia piękna, zwłaszcza w sztuce. Wizualizacja to sztuka przedstawiania danych w efektywny i najłatwiejszy sposób.

Biblioteka Matplotlib w dużym stopniu obsługuje dostosowywanie, ale wiedza o tym, jakie ustawienia należy dostosować, aby uzyskać atrakcyjny i oczekiwany wykres, jest tym, czego należy być świadomym, aby z niej skorzystać. W przeciwieństwie do Matplotlib, Seaborn jest dostarczany z niestandardowymi motywami i interfejsem wysokiego poziomu do dostosowywania i kontrolowania wyglądu figurek Matplotlib.

Przykład

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

Tak wygląda wykres z domyślnymi ustawieniami Matplotlib -

Aby zmienić ten sam wykres na ustawienia domyślne Seaborn, użyj set() funkcja -

Przykład

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

Wynik

Powyższe dwie liczby pokazują różnicę w domyślnych wykresach Matplotlib i Seaborn. Reprezentacja danych jest taka sama, ale styl reprezentacji różni się w obu przypadkach.

Zasadniczo Seaborn dzieli parametry Matplotlib na dwie grupy

  • Style wydruku
  • Skala działki

Style figur Seaborn

Interfejs do manipulowania stylami to set_style(). Za pomocą tej funkcji można ustawić temat fabuły. Zgodnie z najnowszą zaktualizowaną wersją poniżej znajduje się pięć dostępnych motywów.

  • Darkgrid
  • Whitegrid
  • Dark
  • White
  • Ticks

Spróbujmy zastosować motyw z powyższej listy. Domyślnym motywem fabuły będziedarkgrid co widzieliśmy w poprzednim przykładzie.

Przykład

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

Wynik

Różnica między powyższymi dwoma wykresami polega na kolorze tła

Usuwanie kolców siekiery

W motywach białych i kleszczy możemy usunąć kolce górnej i prawej osi za pomocą despine() funkcjonować.

Przykład

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

Wynik

Na zwykłych wykresach używamy tylko lewej i dolnej osi. Używającdespine() funkcji, możemy uniknąć niepotrzebnych grzbietów prawej i górnej osi, które nie są obsługiwane w Matplotlib.

Zastępowanie elementów

Jeśli chcesz dostosować style Seaborn, możesz przekazać słownik parametrów do pliku set_style() funkcjonować. Dostępne parametry są przeglądane za pomocąaxes_style() funkcjonować.

Przykład

import seaborn as sb
print sb.axes_style

Wynik

{'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}

Zmiana wartości któregokolwiek z parametrów zmieni styl wydruku.

Przykład

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

Wynik

Skalowanie elementów wykresu

Mamy również kontrolę nad elementami działki i możemy kontrolować skalę działki za pomocą set_context()funkcjonować. Mamy cztery gotowe szablony dla kontekstów, oparte na względnym rozmiarze, a konteksty nazywane są w następujący sposób

  • Paper
  • Notebook
  • Talk
  • Poster

Domyślnie kontekst jest ustawiony na notatnik; i został użyty w powyższych działkach.

Przykład

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

Wynik

Rozmiar wyjściowy rzeczywistego wykresu jest większy w porównaniu z powyższymi wykresami.

Note - Ze względu na skalowanie obrazów na naszej stronie internetowej możesz przeoczyć faktyczną różnicę w naszych przykładowych wykresach.