examples python oop matplotlib seaborn

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.