A resposta de las3rjock , que de alguma forma é a resposta aceita pelo OP, está incorreta - o código não é executado, nem a sintaxe matplotlib válida; essa resposta não fornece código executável e carece de qualquer informação ou sugestão que o OP possa achar útil para escrever seu próprio código para resolver o problema no OP.
Dado que é a resposta aceita e já recebeu vários votos positivos, suponho que uma pequena desconstrução seja necessária.
Primeiro, chamando subtrama que não dar-lhe várias parcelas; subplot é chamado para criar um único gráfico, bem como para criar vários gráficos. Além disso, "alterar plt.figure (i)" não é correto.
plt.figure () (em que plt ou PLT é geralmente a biblioteca pyplot de matplotlib importada e rebote como uma variável global, plt ou às vezes PLT, assim:
from matplotlib import pyplot as PLT
fig = PLT.figure()
a linha logo acima cria uma instância de figura matplotlib; o método add_subplot desse objeto é então chamado para cada janela de plotagem (informalmente, pense em um eixo x e y compreendendo um único subplot). Você cria (seja apenas um ou para vários em uma página), assim
fig.add_subplot(111)
esta sintaxe é equivalente a
fig.add_subplot(1,1,1)
escolha aquele que faz sentido para você.
Abaixo, listei o código para plotar dois gráficos em uma página, um acima do outro. A formatação é feita por meio do argumento passado para add_subplot . Observe que o argumento é ( 211 ) para o primeiro gráfico e ( 212 ) para o segundo.
from matplotlib import pyplot as PLT
fig = PLT.figure()
ax1 = fig.add_subplot(211)
ax1.plot([(1, 2), (3, 4)], [(4, 3), (2, 3)])
ax2 = fig.add_subplot(212)
ax2.plot([(7, 2), (5, 3)], [(1, 6), (9, 5)])
PLT.show()
Cada um desses dois argumentos é uma especificação completa para colocar corretamente as respectivas janelas de plotagem na página.
211 (que, novamente, também poderia ser escrito na forma de 3 tuplas como (2,1,1) significa duas linhas e uma coluna de janelas de gráfico; o terceiro dígito especifica a ordem daquela janela de sub-gráfico em particular em relação às outras janelas de sub-gráfico- - neste caso, este é o primeiro gráfico (que o coloca na linha 1), portanto, o gráfico número 1, linha 1 col 1.
O argumento passado para a segunda chamada para add_subplot difere da primeira apenas pelo dígito final (2 em vez de 1, porque este gráfico é o segundo gráfico (linha 2, coluna 1).
Um exemplo com mais gráficos: se em vez disso você quisesse quatro gráficos em uma página, em uma configuração de matriz 2x2, você chamaria o método add_subplot quatro vezes, passando esses quatro argumentos (221), (222), (223) e ( 224), para criar quatro plotagens em uma página às 10, 2, 8 e 4 horas, respectivamente e nesta ordem.
Observe que cada um dos quatro argumentos contém dois 2's iniciais - que codificam a configuração 2 x 2, ou seja, duas linhas e duas colunas.
O terceiro dígito (mais à direita) em cada um dos quatro argumentos codifica a ordem dessa janela de gráfico particular na matriz 2 x 2 - ou seja, linha 1 col 1 (1), linha 1 col 2 (2), linha 2 coluna 1 (3), linha 2 coluna 2 (4).
fig.add_axes(rect)
vez deadd_subplot
?PLT
? Nunca vi isso sendo usado antesfor i in range(16): plt.subplot(4, 4, i+1)
e não observar nenhum erro de sintaxe. A resposta é aceita porque provavelmente fez o que o OP queria.Como esta pergunta é de 4 anos atrás, novas coisas foram implementadas e entre elas há uma nova função
plt.subplots
que é muito conveniente :onde
axes
é umnumpy.ndarray
dos objetos AxesSubplot, tornando muito conveniente percorrer os diferentes subplots usando apenas índices de array[i,j]
.fonte
Isso também funciona:
Ele traça 19 gráficos no total em uma página. O formato é 5 para baixo e 4 transversalmente.
fonte
A resposta de @doug & FS. são soluções muito boas. Quero compartilhar a solução para iteração em pandas.dataframe.
fonte
for i,col in enumerate(df.columns):