Eu prefiro fortemente usar matplotlib
no estilo OOP:
f, axarr = plt.subplots(2, sharex=True)
axarr[0].plot(...)
axarr[1].plot(...)
Isso torna mais fácil acompanhar várias figuras e subtramas.
Pergunta: Como usar o seaborn dessa forma? Ou, como alterar este exemplo para o estilo OOP? Como seaborn
identificar funções de plotagem como lmplot
quais Figure
ou para quais Axes
plotagens?
python
oop
matplotlib
seaborn
Chama Congelada
fonte
fonte
Respostas:
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
regplot
,boxplot
,kdeplot
e muitos outroslmplot
,factorplot
,jointplot
e um ou dois outrosO primeiro grupo é identificado pegando um
ax
argumento explícito e retornando umAxes
objeto. Como isso sugere, você pode usá-los em um estilo "orientado a objetos" passando seuAxes
para eles: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 tipoFacetGrid
. 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 argumentosFacetGrid.fig
eFacetGrid.axes
. Ajointplot
função é muito semelhante, mas usa umJointGrid
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.fonte