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.