python - examples - Trazar con seaborn utilizando la interfaz matplotlib orientada a objetos
seaborn python examples (1)
Prefiero usar matplotlib
en el estilo OOP:
f, axarr = plt.subplots(2, sharex=True)
axarr[0].plot(...)
axarr[1].plot(...)
Esto facilita el seguimiento de múltiples figuras y subtramas.
Pregunta: ¿Cómo usar seaborn de esta manera? O bien, ¿cómo cambiar este ejemplo al estilo OOP? ¿Cómo contar las seaborn
trazado seaborn
como lmplot
qué Figure
o Axes
traza?
Depende un poco de la función naciente que estés usando.
Las funciones de trazado en Seaborn están ampliamente divididas en dos clases
- Funciones "Axes-level", que incluyen
regplot
,boxplot
,kdeplot
y muchos otros - Funciones de "nivel de figura", que incluyen
lmplot
,factorplot
,jointplot
y uno o dos más
El primer grupo se identifica tomando un argumento explícito de ax
y devolviendo un objeto Axes
. Como esto sugiere, puede usarlos en un estilo "orientado a objetos" pasando sus Axes
a ellos:
f, (ax1, ax2) = plt.subplots(2)
sns.regplot(x, y, ax=ax1)
sns.kdeplot(x, ax=ax2)
Las funciones de nivel de eje solo se dibujarán en un Axes
y no se mezclarán con la figura, por lo que pueden coexistir perfectamente en un guión 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 necesitan tener un control total sobre la figura, por lo que no es posible trazar, por ejemplo, un lmplot
sobre uno que ya exista. Llamar a la función siempre inicializa una figura y la configura para el diagrama específico que está dibujando.
Sin embargo, una vez que haya llamado a lmplot
, devolverá un objeto del tipo FacetGrid
. Este objeto tiene algunos métodos para operar en el diagrama resultante que conocen un poco sobre la estructura del diagrama. También expone la figura subyacente y la matriz de ejes en los argumentos FacetGrid.fig
y FacetGrid.axes
. La función de jointplot
es muy similar, pero usa un objeto JointGrid
. 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 que haya llamado a la función.