Matplotlib - Multiplots
Neste capítulo, aprenderemos como criar vários subtramas na mesma tela.
o subplot()função retorna o objeto de eixos em uma determinada posição da grade. A assinatura de chamada desta função é -
plt.subplot(subplot(nrows, ncols, index)
Na figura atual, a função cria e retorna um objeto Axes, no índice de posição de uma grade de nrows por ncolsaxes. Os índices vão de 1 a nrows * ncols, aumentando na ordem da linha principal. Se nrows, ncols e índice são todos menores que 10. Os índices também podem ser fornecidos como único, concatenado, número de três dígitos.
Por exemplo, o subplot (2, 3, 3) e o subplot (233) criam um eixo no canto superior direito da figura atual, ocupando metade da altura da figura e um terço da largura da figura.
A criação de uma subtrama excluirá qualquer subtrama pré-existente que se sobrepõe a ela além de compartilhar um limite.
import matplotlib.pyplot as plt
# plot a line, implicitly creating a subplot(111)
plt.plot([1,2,3])
# now create a subplot which represents the top plot of a grid with 2 rows and 1 column.
#Since this subplot will overlap the first, the plot (and its axes) previously
created, will be removed
plt.subplot(211)
plt.plot(range(12))
plt.subplot(212, facecolor='y') # creates 2nd subplot with yellow background
plt.plot(range(12))
A linha de código acima gera a seguinte saída -
A função add_subplot () da classe de figura não sobrescreverá o gráfico existente -
import matplotlib.pyplot as plt
fig = plt.figure()
ax1 = fig.add_subplot(111)
ax1.plot([1,2,3])
ax2 = fig.add_subplot(221, facecolor='y')
ax2.plot([1,2,3])
Quando a linha de código acima é executada, ela gera a seguinte saída -
Você pode adicionar um gráfico de inserção na mesma figura adicionando outro objeto de eixos na mesma tela de figura.
import matplotlib.pyplot as plt
import numpy as np
import math
x = np.arange(0, math.pi*2, 0.05)
fig=plt.figure()
axes1 = fig.add_axes([0.1, 0.1, 0.8, 0.8]) # main axes
axes2 = fig.add_axes([0.55, 0.55, 0.3, 0.3]) # inset axes
y = np.sin(x)
axes1.plot(x, y, 'b')
axes2.plot(x,np.cos(x),'r')
axes1.set_title('sine')
axes2.set_title("cosine")
plt.show()
Após a execução da linha de código acima, a seguinte saída é gerada -