Zdecydowanie wolę używać matplotlib
w stylu OOP:
f, axarr = plt.subplots(2, sharex=True)
axarr[0].plot(...)
axarr[1].plot(...)
Ułatwia to śledzenie wielu figur i wykresów pobocznych.
Pytanie: Jak w ten sposób wykorzystać dno morskie? Albo jak zmienić ten przykład na styl OOP? Jak określić seaborn
funkcje kreślenia, takie jak lmplot
które, Figure
lub do których Axes
wykreśla?
python
oop
matplotlib
seaborn
Frozen Flame
źródło
źródło
Odpowiedzi:
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
regplot
,boxplot
,kdeplot
, i wiele innychlmplot
,factorplot
,jointplot
i jeden lub dwa pozostałePierwsza grupa jest identyfikowana poprzez przyjęcie jawnego
ax
argumentu i zwrócenieAxes
obiektu. Jak to sugeruje, możesz ich używać w stylu „obiektowym”, przekazującAxes
im: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 typuFacetGrid
. 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 argumentachFacetGrid.fig
iFacetGrid.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.źródło