Trazado con marinero utilizando la interfaz orientada a objetos de matplotlib

Yo prefiero usar matplotlib en estilo OOP:

 f, axarr = plt.subplots(2, sharex=True) axarr[0].plot(...) axarr[1].plot(...) 

Esto hace que sea más fácil realizar un seguimiento de varias figuras y subplots.

Pregunta: ¿Cómo usar el transporte marítimo de esta manera? O, ¿cómo cambiar este ejemplo al estilo OOP? ¿Cómo saber las seaborn trazado seaborn como lmplot qué Figure o Axes traza?

Depende un poco de qué función marítima está utilizando.

Las funciones de trazado en el mar se dividen ampliamente en dos clases

  • Funciones de “nivel de ejes”, incluyendo 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 ax explícito y devolviendo un objeto Axes . Como esto sugiere, puede usarlos en un estilo “orientado a objetos” pasándoles sus Axes :

 f, (ax1, ax2) = plt.subplots(2) sns.regplot(x, y, ax=ax1) sns.kdeplot(x, ax=ax2) 

Las funciones de nivel de los ejes solo se dibujarán en un Axes y de otra manera no se mezclarán con la figura, por lo que pueden coexistir perfectamente felices en un script de matplotlib orientado a objetos.

El segundo grupo de funciones (nivel de la figura) se distingue por el hecho de que la gráfica resultante puede incluir varios ejes que siempre están organizados de una manera “significativa”. Eso significa que las funciones deben tener control total sobre la figura, por lo que no es posible trazar, por ejemplo, un lmplot en uno que ya existe. Al llamar a la función, siempre se inicializa una figura y se configura para la ttwig específica 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 la ttwig resultante que conocen un poco acerca de la estructura de la ttwig. También expone la figura subyacente y la matriz de ejes en los argumentos FacetGrid.fig y FacetGrid.axes . La función jointplot es muy similar, pero utiliza 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.