Subplots
A função subplots() do pyplot é utilizada para criar múltiplos gráficos em uma única figura. Você já a viu ao criar um canvas; agora, examinamos em mais detalhes.
Linhas e Colunas
Os principais argumentos são nrows e ncolumns, que definem a grade dos subplots. Por padrão, ambos são 1, produzindo um único Axes.
subplots() retorna um Figure e um objeto Axes ou um array deles, dependendo do layout.
12345import matplotlib.pyplot as plt fig, axs = plt.subplots(2, 2) plt.show()
Uma grade de subplots 2 por 2 foi criada.
Como há vários subplots, subplots retorna um array de objetos Axes, geralmente armazenado em uma variável chamada axs (o singular ax é usado para um único gráfico).
Neste caso, axs é um array bidimensional, portanto, é necessário tanto o índice da linha quanto o da coluna para acessar um subplot específico.
1234567891011121314import matplotlib.pyplot as plt import numpy as np data_linear = np.arange(1, 11) data_squared = data_linear**2 fig, axs = plt.subplots(2, 2) axs[0, 0].plot(data_linear) axs[0, 1].plot(data_squared) axs[1, 0].scatter(data_linear, data_linear) axs[1, 1].scatter(data_linear, data_squared) plt.show()
A primeira linha contém dois gráficos de linha; a segunda linha contém dois gráficos de dispersão.
Cada gráfico deve ser desenhado utilizando o método do respectivo objeto Axes, e não plt.plot() ou plt.scatter().
Convertendo para Array 1D
É possível achatar o array 2D de Axes utilizando .ravel() para simplificar a indexação:
123456789fig, axs = plt.subplots(2, 2) axs = axs.ravel() axs[0].plot(data_linear) axs[1].plot(data_squared) axs[2].scatter(data_linear, data_linear) axs[3].scatter(data_linear, data_squared) plt.show()
Com um array 2x2, axs.ravel() converte-o em um array 1D contendo quatro elementos.
Compartilhando um Eixo
A função subplots() também possui os parâmetros sharex e sharey. Eles controlam se os eixos x ou y são compartilhados entre os subplots. Ambos estão definidos como False por padrão.
123456789fig, axs = plt.subplots(2, 2, sharex=True) axs = axs.ravel() axs[0].plot(data_linear) axs[1].plot(data_squared) axs[2].scatter(data_linear, data_linear) axs[3].scatter(data_linear, data_squared) plt.show()
Definir sharex=True compartilha o eixo x entre todos os subplots.
Também é possível passar 'row' ou 'col' para compartilhar os eixos apenas dentro das linhas ou colunas.
Como de costume, sinta-se à vontade para explorar mais na
subplots() documentação caso queira.
Swipe to start coding
- Utilize a função correta para criar uma grade de subplots.
- A grade deve conter 3 linhas e 1 coluna (especifique os dois primeiros parâmetros).
- Especifique o argumento nomeado mais à direita para que o eixo x seja compartilhado entre todos os subplots.
- Armazene o resultado da função de criação dos subplots nas variáveis
figeaxs(da esquerda para a direita). - Posicione o primeiro gráfico de linha para
data_linearna primeira linha (linha0) da grade de subplots. - Posicione o segundo gráfico de linha para
data_squaredna segunda linha (linha1) da grade de subplots. - Posicione o terceiro gráfico de linha para
data_expna terceira linha (linha2) da grade de subplots.
Solução
Obrigado pelo seu feedback!
single
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo
Can you explain more about how to access individual subplots in the 2D array?
What happens if I create a grid with more rows or columns?
How do I customize the appearance of each subplot?
Incrível!
Completion taxa melhorada para 3.85
Subplots
Deslize para mostrar o menu
A função subplots() do pyplot é utilizada para criar múltiplos gráficos em uma única figura. Você já a viu ao criar um canvas; agora, examinamos em mais detalhes.
Linhas e Colunas
Os principais argumentos são nrows e ncolumns, que definem a grade dos subplots. Por padrão, ambos são 1, produzindo um único Axes.
subplots() retorna um Figure e um objeto Axes ou um array deles, dependendo do layout.
12345import matplotlib.pyplot as plt fig, axs = plt.subplots(2, 2) plt.show()
Uma grade de subplots 2 por 2 foi criada.
Como há vários subplots, subplots retorna um array de objetos Axes, geralmente armazenado em uma variável chamada axs (o singular ax é usado para um único gráfico).
Neste caso, axs é um array bidimensional, portanto, é necessário tanto o índice da linha quanto o da coluna para acessar um subplot específico.
1234567891011121314import matplotlib.pyplot as plt import numpy as np data_linear = np.arange(1, 11) data_squared = data_linear**2 fig, axs = plt.subplots(2, 2) axs[0, 0].plot(data_linear) axs[0, 1].plot(data_squared) axs[1, 0].scatter(data_linear, data_linear) axs[1, 1].scatter(data_linear, data_squared) plt.show()
A primeira linha contém dois gráficos de linha; a segunda linha contém dois gráficos de dispersão.
Cada gráfico deve ser desenhado utilizando o método do respectivo objeto Axes, e não plt.plot() ou plt.scatter().
Convertendo para Array 1D
É possível achatar o array 2D de Axes utilizando .ravel() para simplificar a indexação:
123456789fig, axs = plt.subplots(2, 2) axs = axs.ravel() axs[0].plot(data_linear) axs[1].plot(data_squared) axs[2].scatter(data_linear, data_linear) axs[3].scatter(data_linear, data_squared) plt.show()
Com um array 2x2, axs.ravel() converte-o em um array 1D contendo quatro elementos.
Compartilhando um Eixo
A função subplots() também possui os parâmetros sharex e sharey. Eles controlam se os eixos x ou y são compartilhados entre os subplots. Ambos estão definidos como False por padrão.
123456789fig, axs = plt.subplots(2, 2, sharex=True) axs = axs.ravel() axs[0].plot(data_linear) axs[1].plot(data_squared) axs[2].scatter(data_linear, data_linear) axs[3].scatter(data_linear, data_squared) plt.show()
Definir sharex=True compartilha o eixo x entre todos os subplots.
Também é possível passar 'row' ou 'col' para compartilhar os eixos apenas dentro das linhas ou colunas.
Como de costume, sinta-se à vontade para explorar mais na
subplots() documentação caso queira.
Swipe to start coding
- Utilize a função correta para criar uma grade de subplots.
- A grade deve conter 3 linhas e 1 coluna (especifique os dois primeiros parâmetros).
- Especifique o argumento nomeado mais à direita para que o eixo x seja compartilhado entre todos os subplots.
- Armazene o resultado da função de criação dos subplots nas variáveis
figeaxs(da esquerda para a direita). - Posicione o primeiro gráfico de linha para
data_linearna primeira linha (linha0) da grade de subplots. - Posicione o segundo gráfico de linha para
data_squaredna segunda linha (linha1) da grade de subplots. - Posicione o terceiro gráfico de linha para
data_expna terceira linha (linha2) da grade de subplots.
Solução
Obrigado pelo seu feedback!
single