O método add_subplot () possui várias assinaturas de chamada:
add_subplot(nrows, ncols, index, **kwargs)
add_subplot(pos, **kwargs)
add_subplot(ax)
add_subplot()
<- desde 3.1.0
Chamadas 1 e 2:
As chamadas 1 e 2 alcançam a mesma coisa que as outras (até um limite, explicado abaixo). Pense neles como primeiro especificando o layout da grade com seus 2 primeiros números (2x2, 1x8, 3x4 etc.), por exemplo:
f.add_subplot(3,4,1)
# is equivalent to:
f.add_subplot(341)
Ambos produzem um arranjo de subparcela de (3 x 4 = 12) subtramas em 3 linhas e 4 colunas. O terceiro número em cada chamada indica qual objeto de eixo retornar, começando em 1 no canto superior esquerdo, aumentando para a direita .
Este código ilustra as limitações do uso da chamada 2:
#!/usr/bin/env python3
import matplotlib.pyplot as plt
def plot_and_text(axis, text):
'''Simple function to add a straight line
and text to an axis object'''
axis.plot([0,1],[0,1])
axis.text(0.02, 0.9, text)
f = plt.figure()
f2 = plt.figure()
_max = 12
for i in range(_max):
axis = f.add_subplot(3,4,i+1, fc=(0,0,0,i/(_max*2)), xticks=[], yticks=[])
plot_and_text(axis,chr(i+97) + ') ' + '3,4,' +str(i+1))
# If this check isn't in place, a
# ValueError: num must be 1 <= num <= 15, not 0 is raised
if i < 9:
axis = f2.add_subplot(341+i, fc=(0,0,0,i/(_max*2)), xticks=[], yticks=[])
plot_and_text(axis,chr(i+97) + ') ' + str(341+i))
f.tight_layout()
f2.tight_layout()
plt.show()
Você pode ver com a chamada 1 no LHS que pode retornar qualquer objeto de eixo; no entanto, com a chamada 2 no RHS, você só pode retornar até o índice = 9 renderizando subparcelas j), k) e l) inacessíveis usando esta chamada.
Ou seja, ilustra este ponto da documentação:
pos é um número inteiro de três dígitos, em que o primeiro dígito é o número de linhas, o segundo o número de colunas e o terceiro o índice da subparcela. ie fig.add_subplot (235) é o mesmo que fig.add_subplot (2, 3, 5). Observe que todos os números inteiros devem ser menores que 10 para que este formulário funcione .
Ligue 3
Em raras circunstâncias, add_subplot pode ser chamado com um único argumento, uma instância de eixos de subparcela já criada na figura atual, mas não na lista de eixos da figura.
Ligue 4 (desde 3.1.0):
Se nenhum argumento posicional for passado, o padrão é (1, 1, 1).
isto é, reproduzir a chamada fig.add_subplot(111)
na pergunta.