Seaaborn - rozkład obserwacji

W kategorycznych wykresach rozrzutu, które omawialiśmy w poprzednim rozdziale, podejście jest ograniczone pod względem informacji, które może dostarczyć na temat rozkładu wartości w każdej kategorii. Idąc dalej, zobaczmy, co może nam ułatwić dokonywanie porównań z kategoriami.

Wykresy pudełkowe

Boxplot to wygodny sposób na wizualizację dystrybucji danych za pomocą ich kwartyli.

Działki pudełkowe mają zwykle pionowe linie wychodzące z pól, które są określane jako wąsy. Te wąsy wskazują na zmienność poza górnym i dolnym kwartylem, stąd wykresy pudełkowe są również określane jakobox-and-whisker fabuła i box-and-whisker diagram. Wszelkie wartości odstające w danych są wykreślane jako pojedyncze punkty.

Przykład

import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('iris')
sb.swarmplot(x = "species", y = "petal_length", data = df)
plt.show()

Wynik

Kropki na wykresie wskazują wartość odstającą.

Działki skrzypcowe

Wykresy skrzypcowe to połączenie wykresu skrzynkowego z szacunkami gęstości jądra. Tak więc wykresy te są łatwiejsze do analizy i zrozumienia rozmieszczenia danych.

Skorzystajmy ze zbioru danych tipsów, aby dowiedzieć się więcej na temat wykresów skrzypiec. Ten zbiór danych zawiera informacje związane z poradami podawanymi przez klientów w restauracji.

Przykład

import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('tips')
sb.violinplot(x = "day", y = "total_bill", data=df)
plt.show()

Wynik

Kwartyle i wąsy z wykresu pudełkowego są wyświetlane wewnątrz skrzypiec. Ponieważ wykres skrzypcowy wykorzystuje KDE, szersza część skrzypiec wskazuje na wyższą gęstość, a wąski obszar reprezentuje stosunkowo mniejszą gęstość. Przedział między kwartylami w wykresie pudełkowym i część o większej gęstości w kde przypada na ten sam region każdej kategorii wykresu skrzypcowego.

Powyższy wykres przedstawia rozkład total_bill na cztery dni tygodnia. Ale oprócz tego, jeśli chcemy zobaczyć, jak zachowuje się dystrybucja w odniesieniu do płci, zbadajmy to w poniższym przykładzie.

Przykład

import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('tips')
sb.violinplot(x = "day", y = "total_bill",hue = 'sex', data = df)
plt.show()

Wynik

Teraz możemy wyraźnie zobaczyć zachowania dotyczące wydatków między mężczyznami a kobietami. Można śmiało powiedzieć, że patrząc na fabułę mężczyźni zarabiają więcej niż kobiety.

A jeśli zmienna hue ma tylko dwie klasy, możemy upiększyć fabułę, dzieląc w danym dniu każde skrzypce na dwie zamiast na dwoje. Obie części skrzypiec odnoszą się do każdej klasy w zmiennej hue.

Przykład

import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('tips')
sb.violinplot(x = "day", y="total_bill",hue = 'sex', data = df)
plt.show()

Wynik