Introdução
Neste tutorial, aprenderemos como criar e personalizar gráficos usando Matplotlib. Matplotlib é uma biblioteca Python que oferece uma ampla gama de ferramentas para criar visualizações estáticas, animadas e interativas em Python.
Dicas para a VM
Após a inicialização da VM, clique no canto superior esquerdo para mudar para a aba Notebook e acessar o Jupyter Notebook para praticar.
Às vezes, pode ser necessário aguardar alguns segundos para que o Jupyter Notebook termine de carregar. A validação das operações não pode ser automatizada devido a limitações no Jupyter Notebook.
Se você enfrentar problemas durante o aprendizado, sinta-se à vontade para perguntar ao Labby. Forneça feedback após a sessão, e resolveremos o problema prontamente para você.
Importando as Bibliotecas Matplotlib e NumPy
O primeiro passo é importar as bibliotecas. Usaremos o módulo pyplot do Matplotlib e a biblioteca numpy.
import matplotlib.pyplot as plt
import numpy as np
Criando uma Figura e Subplots
O próximo passo é criar uma figura e subplots. Criaremos uma figura com dois subplots lado a lado usando a função subplots.
fig, (ax0, ax1) = plt.subplots(ncols=2, figsize=(7, 4))
Definindo a Relação de Aspecto e Plotando Dados
Agora, definiremos a relação de aspecto do primeiro subplot para 1 usando a função set_aspect e plotaremos alguns dados usando a função plot.
ax0.set_aspect(1)
ax0.plot(np.arange(10))
Personalizando os Rótulos dos Eixos
Para personalizar os rótulos dos eixos, podemos usar as funções set_xlabel e set_ylabel. Também podemos adicionar quebras de linha usando o caractere "\n".
ax0.set_xlabel('this is a xlabel\n(with newlines!)')
ax0.set_ylabel('this is vertical\ntest', multialignment='center')
Adicionando Texto ao Gráfico
Podemos adicionar texto ao gráfico usando a função text. Podemos especificar a posição, rotação, alinhamento horizontal e vertical, e multialinhamento do texto.
ax0.text(2, 7, 'this is\nyet another test',
rotation=45,
horizontalalignment='center',
verticalalignment='top',
multialignment='center')
Adicionando Linhas de Grade
Para adicionar linhas de grade ao gráfico, podemos usar a função grid.
ax0.grid()
Adicionando Texto Multilinha ao Segundo Subgráfico
No segundo subgráfico, adicionaremos texto multilinha usando a função text. Podemos especificar a posição, tamanho, alinhamento vertical e horizontal, e bbox do texto.
ax1.text(0.29, 0.4, "Mat\nTTp\n123", size=18,
va="baseline", ha="right", multialignment="left",
bbox=dict(fc="none"))
ax1.text(0.34, 0.4, "Mag\nTTT\n123", size=18,
va="baseline", ha="left", multialignment="left",
bbox=dict(fc="none"))
ax1.text(0.95, 0.4, "Mag\nTTT$^{A^A}$\n123", size=18,
va="baseline", ha="right", multialignment="left",
bbox=dict(fc="none"))
Personalizando os Rótulos do Eixo X
Para personalizar os rótulos do eixo x, podemos usar a função set_xticks. Podemos especificar as posições e os rótulos dos ticks.
ax1.set_xticks([0.2, 0.4, 0.6, 0.8, 1.],
labels=["Jan\n2009", "Feb\n2009", "Mar\n2009", "Apr\n2009",
"May\n2009"])
Adicionando uma Linha Horizontal e Título ao Segundo Subgráfico
Para adicionar uma linha horizontal ao segundo subgráfico, podemos usar a função axhline. Também podemos adicionar um título ao subgráfico usando a função set_title.
ax1.axhline(0.4)
ax1.set_title("test line spacing for multiline text")
Ajustando as Posições dos Subgráficos e Exibindo o Gráfico
Finalmente, podemos ajustar as posições dos subgráficos usando a função subplots_adjust e exibir o gráfico usando a função show.
fig.subplots_adjust(bottom=0.25, top=0.75)
plt.show()
Resumo
Neste tutorial, aprendemos como criar e personalizar gráficos usando Matplotlib. Cobrimos como criar uma figura e subgráficos, plotar dados, personalizar rótulos dos eixos, adicionar texto ao gráfico, adicionar linhas de grade, personalizar rótulos do eixo x, adicionar uma linha horizontal e título ao gráfico, e ajustar as posições dos subgráficos. Matplotlib oferece uma ampla gama de ferramentas para criar visualizações estáticas, animadas e interativas em Python, tornando-a uma biblioteca poderosa para visualização de dados.