Buscar

Introdução ao Matplotlib

Prévia do material em texto

Matplotlib
March 17, 2022
1 Matplotlib
• o módulo de visualização mais utilizado
• ajuda a compreender os dados que estamos trabalhando
• além de ter integração com os outros módulos, serve de base para outras plataformas de
visualização (seaborn, por exemplo)
• um pouco mais complicado que outros módulos.
• é uma biblioteca multiplataforma para visualização de dados
• é uma biblioteca que se utiliza da magia do Numpy
• consegue apresentar grandes quantidades de dados (uma das maiores vantagens)
• muitos tipos de gráficos
• relativamente fácil de usar: lista com valores de X outra com valores de Y –> plot
• organização visual em forma de “grade”, facilitando a apresentação de múltiplos gráficos
[1]: # ou: import matplotlib.pyplot as plt
from matplotlib import pyplot as plt
1.0.1 Tipos de Gráficos
https://matplotlib.org/stable/plot_types/index.html
1.0.2 Gráfico de Linha
[7]: # Valores no eixo x
x = [2, 4, 5, 7, 9]
# Valores no eixo y
y = [5, 8, 6, 10, 8]
# Método para plotar
plt.plot(x,y)
# Método para mostrar
plt.show()
1
1.0.3 Gráfico de Barra
[8]: # Valores no eixo x
x = [2, 4, 5, 7, 9]
# Valores no eixo y
y = [5, 8, 6, 10, 8]
# Método para plotar
plt.bar(x,y)
# Método para mostrar
plt.show()
2
1.0.4 Histograma
[17]: # o histograma é diferente do gráfico de barras. O histograma faz uma contagem␣
↪→de uma variável.
# Valores no eixo y
y = [5, 8, 7, 10, 8, 12, 5, 8, 8, 6, 7, 7]
# Método para plotar
plt.hist(y)
# Método para mostrar
plt.show()
3
1.0.5 Gráfico de Dispersão
[18]: # Valores no eixo x
x = [2, 4, 5, 7, 9]
# Valores no eixo y
y = [5, 8, 6, 10, 8]
# Método para plotar
plt.scatter(x,y)
# Método para mostrar
plt.show()
4
1.0.6 Estrutura
Objetos principais: - figure: a ‘janela’ que ontem os gráficos - axes: um gráfico
Eexemplo: Uma janela com dois gráficos: 1 figure com 2 axes. Duas janelas com três gráficos cada:
2 figures com 3 axes em cada (6 axes ao todo)
• Para criar mais de um gráfico numa figura: método subplot()
5
• Formato de “grade” (grid): 2x2, 1x3, 4x4
• Possui três parâmetros: nrows(número de linhas), ncols(número de colunas),
plot_number(identificador do gráfico)
1.1 Paradigmas
• Duas ‘formas’ de trabalho: funcional vs orientada a objetos
• Funcional: pressupõe que existe uma figure e um axes criado em ’background. Obs.: em
Python tudo são objetos, mas a forma de utilizar o matplotlib direto sem instâncias parece o
paradigma funcional.
• Orientado a Objetos: cria os objetos de forma explícita.
[19]: import numpy as np
Funcional
pronto para começaar, basta usar o plt
[23]: # 0 a 10 dividido em 30 partes
x = np.linspace(0,10,30)
# x elevado a 2
y = x**2
plt.xlabel("Título do exico X")
plt.ylabel("Título do exico Y")
plt.title("Título do Gráfico")
plt.plot(x,y)
[23]: [<matplotlib.lines.Line2D at 0x1d9cfa1d310>]
6
Orientada a Objetos
cria explicitamente a figura e os gráficos. - Para criar uma figura, utilizamos o método figure() -
Para adicionar os gráficos (axes), utilizamos o método add_axes() do objeto figure
[43]: janela = plt.figure()
<Figure size 432x288 with 0 Axes>
[57]: grafico = janela.add_axes([0.1, 0.1, 1, 0.5]) # retângulo onde vai criar o␣
↪→gráfico(axes): x , y, largura, altura
grafico.plot(x, y, 'green')
janela
[57]:
7
• Para remover o gráfico, basta chamar o método remove() do próprio gráfico (objeto axes)
[39]: grafico.remove()
janela
[39]: <Figure size 432x288 with 0 Axes>
No paradigma Orientado a Objetos temos a liberdade de adicionar gráficos na posição que quiser,
inclusive com gráficos dentro de outros gráficos
[48]: figura_nova = plt.figure()
axes1 = figura_nova.add_axes([0.1, 0.1, 1, 0.5])
axes2 = figura_nova.add_axes([0.2, 0.5, 0.8, 0.3])
axes1.plot(x,y, "blue")
axes2.plot(y,x, "red")
[48]: [<matplotlib.lines.Line2D at 0x1d9d2068580>]
Na prática, no dia a dia, subplots já cria os gráficos em forma de grade (cuidado que agora é no
plural!)
[49]: fig_2_por_2, axes = plt.subplots(nrows=2, ncols=2) # retorna uma tupla com dois␣
↪→elementos
8
[50]: axes #array com os gráficos prontos para receber a plotagem
[50]: array([[<AxesSubplot:>, <AxesSubplot:>],
[<AxesSubplot:>, <AxesSubplot:>]], dtype=object)
[52]: # para acessar um axes:
axes[0][0]
[52]: <AxesSubplot:>
2 Dicas e Utilidades
tight_layout() - ‘espreme’ os subplots deixando-os mais organizados
[53]: fig_2_por_2, axes = plt.subplots(nrows=2, ncols=2)
axes[0][0].plot(x, y, 'green')
axes[1][1].plot(y, x, 'orange')
plt.tight_layout()
9
Tamanho da figura
plt.figure(figsize=(8,4)) ou subplots(figsize=(8,4))
Arquivo imagem
Para salvar um gráfico num arquivo de imagem: figura.savefig(“grafico.png”)
[54]: fig_2_por_2.savefig("teste.png")
Legendas
[65]: figura = plt.figure(figsize=(6,4), dpi=120)
ax = figura.add_axes([0,0,1,1])
ax.plot(x, x**2, label = 'Arrecadação 2020')
ax.plot(x, x**3, 'red', label = 'Arrecadação 2021')
ax.legend() # busca valores no 'label' do plot
[65]: <matplotlib.legend.Legend at 0x1d9d249a760>
10
[ ]:
11
	Matplotlib
	Tipos de Gráficos
	Gráfico de Linha
	Gráfico de Barra
	Histograma
	Gráfico de Dispersão
	Estrutura
	Paradigmas
	Dicas e Utilidades

Continue navegando