Baixe o app para aproveitar ainda mais
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
Compartilhar