To zależy w pewnym stopniu od tego, której funkcji morskiej używasz.
Funkcje kreślenia u labornów można zasadniczo podzielić na dwie klasy
- Funkcje „Topory-level”, w tym
regplot
, boxplot
, kdeplot
, i wiele innych
- Rysunek funkcje „poziom”, w tym
lmplot
, factorplot
, jointplot
i jeden lub dwa pozostałe
Pierwsza grupa jest identyfikowana poprzez przyjęcie jawnego ax
argumentu i zwrócenie Axes
obiektu. Jak to sugeruje, możesz ich używać w stylu „obiektowym”, przekazując Axes
im:
f, (ax1, ax2) = plt.subplots(2)
sns.regplot(x, y, ax=ax1)
sns.kdeplot(x, ax=ax2)
Funkcje na poziomie osi będą rysować tylko na an Axes
i nie będą z nim mieszać, więc mogą doskonale współistnieć w skrypcie zorientowanym obiektowo matplotlib.
Drugą grupę funkcji (na poziomie rysunku) wyróżnia fakt, że wynikowy wykres może potencjalnie zawierać kilka osi, które są zawsze zorganizowane w „znaczący” sposób. Oznacza to, że funkcje muszą mieć całkowitą kontrolę nad figurą, więc nie jest możliwe wykreślenie, powiedzmy, lmplot
na już istniejącą. Wywołanie funkcji zawsze inicjuje figurę i ustawia ją dla określonego wykresu, który rysuje.
Jednak po wywołaniu lmplot
zwróci obiekt tego typu FacetGrid
. Ten obiekt ma kilka metod działania na wynikowej działce, które trochę wiedzą o strukturze działki. Ujawnia również podstawową figurę i tablicę osi w argumentach FacetGrid.fig
i FacetGrid.axes
. jointplot
Funkcja jest bardzo podobny, ale używa się JointGrid
obiektu. Możesz więc nadal używać tych funkcji w kontekście obiektowym, ale wszystkie dostosowania muszą nastąpić po wywołaniu funkcji.