Depende un poco de qué función seaborn esté utilizando.
Las funciones de trazado en seaborn se dividen ampliamente en dos clases
- Funciones "Ejes nivel", incluyendo
regplot, boxplot, kdeplot, y muchos otros
- Funciones de "nivel Figura", incluyendo
lmplot, factorplot, jointploty uno o dos otros
El primer grupo se identifica tomando un axargumento explícito y devolviendo un Axesobjeto. Como sugiere esto, puede usarlos en un estilo "orientado a objetos" pasándoles su Axes:
f, (ax1, ax2) = plt.subplots(2)
sns.regplot(x, y, ax=ax1)
sns.kdeplot(x, ax=ax2)
Las funciones de nivel de ejes solo se dibujarán en una Axesfigura y no se enredarán con la figura, por lo que pueden coexistir perfectamente y felizmente en un script matplotlib orientado a objetos.
El segundo grupo de funciones (nivel de figura) se distingue por el hecho de que la gráfica resultante puede incluir potencialmente varios ejes que siempre están organizados de una manera "significativa". Eso significa que las funciones deben tener un control total sobre la figura, por lo que no es posible trazar, digamos, una lmplotsobre una que ya existe. Llamar a la función siempre inicializa una figura y la configura para el gráfico específico que está dibujando.
Sin embargo, una vez que haya llamado lmplot, devolverá un objeto del tipo FacetGrid. Este objeto tiene algunos métodos para operar en la trama resultante que conocen un poco sobre la estructura de la trama. También expone la figura subyacente y la matriz de ejes en los argumentos FacetGrid.figy FacetGrid.axes. La jointplotfunción es muy similar, pero usa un JointGridobjeto. Por lo tanto, aún puede usar estas funciones en un contexto orientado a objetos, pero toda su personalización debe realizarse después de haber llamado a la función.