Depende um pouco de qual função marítima você está usando.
As funções de plotagem no mar são amplamente divididas em duas classes
- Funções "de nível Machados", incluindo
regplot
, boxplot
, kdeplot
e muitos outros
- Funções de "nível Figura", incluindo
lmplot
, factorplot
, jointplot
e um ou dois outros
O primeiro grupo é identificado pegando um ax
argumento explícito e retornando um Axes
objeto. Como isso sugere, você pode usá-los em um estilo "orientado a objetos" passando seu Axes
para eles:
f, (ax1, ax2) = plt.subplots(2)
sns.regplot(x, y, ax=ax1)
sns.kdeplot(x, ax=ax2)
As funções no nível dos eixos apenas desenharão em um Axes
e não bagunçarão a figura de outra forma, para que possam coexistir perfeitamente em um script matplotlib orientado a objetos.
O segundo grupo de funções (nível de Figura) distingue-se pelo fato de que o enredo resultante pode potencialmente incluir vários Eixos que são sempre organizados de uma forma "significativa". Isso significa que as funções precisam ter controle total sobre a figura, de modo que não é possível plotar, digamos, uma lmplot
sobre uma que já existe. Chamar a função sempre inicializa uma figura e a configura para o gráfico específico que está desenhando.
No entanto, depois de chamado lmplot
, ele retornará um objeto do tipo FacetGrid
. Este objeto possui alguns métodos para operar na trama resultante que conhecem um pouco sobre a estrutura da trama. Ele também expõe a figura subjacente e a matriz de eixos nos argumentos FacetGrid.fig
e FacetGrid.axes
. A jointplot
função é muito semelhante, mas usa um JointGrid
objeto. Portanto, você ainda pode usar essas funções em um contexto orientado a objetos, mas toda a sua customização deve vir depois de você chamar a função.