Uma introdução ao Matplotlib em Python

Matplotlib é uma biblioteca de plotagem Python que os especialistas em aprendizado de máquina usam principalmente para criar visualizações estáticas e interativas.

O que é Matplotlib

Mathplotlib é uma criação de John D. Hunter em 2003 que foi lançada em 8 de maio de 2021 e possui uma versão atual de 3.4.2.

Esta biblioteca é escrita principalmente em Python, enquanto o restante é escrito em objetivo C e JavaScript, tornando-a compatível com a plataforma.

Matplotlib usa NumPy, que é uma extensão numérica do Python. Sua extensão com o NumPy adiciona sua viabilidade como uma alternativa de código aberto e o torna uma preferência melhor do que o MATLAB.

Para aplicativos Python GUI, Matplotlib permite a plotagem de gráficos estáticos nele usando a API orientada a objetos que vem com ele.

Os usuários podem usar apenas algumas linhas escritas de código Python para visualizar seus dados usando diferentes gráficos, incluindo gráficos de dispersão, histogramas, gráficos de barras, gráficos de pizza, gráficos de linhas e gráficos de caixa.

Você pode usar o Matplotlib para criar gráficos em ambientes incluindo shell Python, notebook Jupyter,
Jupyter e também usando Pycharm ou Anaconda e em servidores de aplicativos da Web como Flask e Django em várias plataformas.

Como no MATLAB, você pode controlar extensivamente os gráficos em termos de fontes, linhas, cores e estilos.

Após a breve introdução da biblioteca Matplotib em Python, vamos ver como podemos configurá-la em nossos sistemas.

Configurando o ambiente Matplotlib

Como qualquer outro pacote e biblioteca Python, você pode instalar a biblioteca Matplotlib pré-compilada e seus pacotes em todos os sistemas operacionais com o gerenciador de pacotes pip.

Claro, requer que você instale o Python e o pacote pip em seu sistema primeiro.

Os comandos a seguir exibem a versão do Python e do pip para confirmar se essas ferramentas já estão instaladas.

Verifique se o Python está instalado

Python --version

Verifique se o pip está instalado

pip -V

Instalar Mathplotlib

O comando abaixo instala o pacote Matplotlib do Python Package Index (PyPI).

python -m pip install matplotlib

Este comando baixa e instala os pacotes relevantes do Matplotlib. Você deverá ver uma mensagem de instalação bem-sucedida após a conclusão da instalação.

Para ter certeza de que o Matplotlib foi instalado com sucesso, digite o seguinte comando, que exibirá a versão do Matplotlib em seu prompt de comando.

import matplotlib
matplotlib.__version__

Os desenvolvedores que desejam instalar o pacote Matplotlib não compilado devem ter acesso ao compilador correto em seu sistema, além de dependências, scripts de configuração, arquivos de configuração e patches.

No entanto, esta instalação particular não compilada do Matplolib pode ser complicada, especialmente para usuários iniciantes do Matplotlib. Portanto, por que não usar um comando de uma linha para instalar a biblioteca em segundos?🤔

Após a instalação do Matplotlib, importe o pacote para o seu ambiente para acessar seus utilitários.

Opções de plotagem do Matplotlib

Matplotlib fornece várias opções de plotagem para visualizar dados. Também permite a personalização das plotagens, fornecendo diferentes temas, cores e opções de paleta que o usuário pode usar para manipular as plotagens.

  Como estender a área de transferência do seu navegador para 10 itens

Essas opções de plotagem incluem:

#1. Gráficos de barras

Gráficos de barras, conhecidos como gráficos de barras, são uma opção adequada para visualizar uma comparação quantitativa de valores dentro da mesma categoria.

Matplotlib representa este gráfico usando barras retangulares onde seus comprimentos e alturas representam seus valores proporcionais. As barras podem ser horizontais ou verticais.

O Matplotlib usa sua função plt.bar() para criar o gráfico de barras.

Além disso, você pode empregar mais funções para manipular esse gráfico. Por exemplo, as funções plt.xlabel() e plt.ylabel() rotulam os eixos xey do gráfico, respectivamente.

A função plt.title() também permite que você dê um título ao seu gráfico, enquanto a função plt.savefig() salva o gráfico. A função plot.show(), que é a mais importante, exibe o gráfico.

#2. Gráficos de pizza

Você pode visualizar a distribuição proporcional dos itens dentro da mesma categoria usando um gráfico estatístico circular que chamamos de gráficos de pizza.

Os gráficos de pizza exibem dados em forma de porcentagem. A área inteira do gráfico corresponde à porcentagem de todos os dados, enquanto as fatias de pizza individuais representam seções da porcentagem dos dados.

O Matplotlib usa a função plt.pie() que desenha e ajusta os parâmetros do gráfico de pizza.
Mais parâmetros como o autopct que imprimem o valor do gráfico de pizza com até 1 casa decimal são úteis na plotagem de gráficos de pizza.

As organizações empresariais consideram os gráficos de pizza úteis na apresentação de informações relevantes, como operações, vendas ou recursos.

#3. Histograma

Um histograma exibe a distribuição de dados numéricos. Ele usa intervalos contínuos para dividir os dados em seções distintas.

A principal diferença entre um histograma e um gráfico de barras é o tipo de dados que eles manipulam. Enquanto os histogramas lidam com o tipo de dados contínuo, os gráficos de barras lidam com dados categóricos.

O Matplotlib usa a função hist() que usa uma matriz de valores aleatórios ou definidos para criar o histograma.

#4. Gráficos de linha

Esses gráficos são úteis para mostrar a relação entre dois valores de dados que definimos como numéricos e categóricos, em uma base X e Y.

Os gráficos de linha são significativos para rastrear a alteração dos valores de dados ao longo de algum tempo.

#5. Gráficos de dispersão

Os gráficos de dispersão indicam a relação, incluindo a correlação entre as variáveis ​​nos dados. Também é útil na identificação de outliers.

Os gráficos de dispersão usam pontos para representar a relação das variáveis ​​de dados e como uma mudança em uma variável pode afetar outra.

Como criar gráficos no Matplotlib

Matplotlib usa funções diferentes para criar gráficos diferentes. Ele também usa poucas linhas de código para criar o enredo.

Abaixo vemos como criar as diferentes opções de plotagem usando diferentes funções no Matplotlib.

#1. Gráfico de barras no Matplotlib

Os gráficos de barras, conforme explicado acima, exibem categorias de dados usando barras e eixos que representam uma comparação de categorias em um eixo e valores correspondentes das categorias no outro eixo.

A função bar() no Matplotlib usa diferentes layouts de argumentos para descrever o layout das barras, conforme mostrado abaixo.

plt.bar(x, y, height, width, bottom, align)

Os parâmetros xey representam os valores da coordenada x e os valores da coordenada y da barra no gráfico. O parâmetro largura representa a largura da barra, enquanto o parâmetro altura representa a altura da barra.

Por exemplo, vamos representar o número de cães e gatos em um abrigo de animais chamado x.

import matplotlib.pyplot as plt
import numpy as np

x = ["Cats", "Dogs"]
plt.xlabel("Cats and Dogs in Shelter")
plt.ylabel("No. of animals in Shelter")
plt.title("Number of cats and dogs in shelter x")
y = [300, 350]
plt.bar(x, y, color="black", width = 0.5)

Resultado:

  A caixa de entrada do Gmail não organiza e-mails, ela lembra você de respondê-los

Saída do gráfico de barras no Mathplotlib

Como em nosso exemplo acima, você pode especificar ainda mais a cor das barras usando o atributo color. Além disso, plt.xlabel e p.ylabel nomeiam os eixos xey, respectivamente, enquanto plt.title nomeia o gráfico.

#2. Como criar um gráfico de pizza

O Matplotlib usa a função pie() que vem com o módulo pyplot para traçar um gráfico de pizza.
A função representa os dados a serem plotados em forma de matriz.

Sintaxe:

matplotlib.pyplot.pie(data, explode=None, labels=None, colors=None, autopct=None, shadow=False)

O parâmetro colors define a cor das fatias de pizza. Você pode usar uma matriz de valores para especificar uma cor para cada fatia.

Para incluir ainda mais detalhes de cada fatia na torta, o argumento autopct adiciona as porcentagens numéricas que cada fatia representa usando a notação de formatação String do Python. A explosão como argumento aceita uma matriz de valores que começam em 0,1 para definir a distância da fatia do centro da torta.

Vamos traçar um gráfico de pizza que exibe os recursos em porcentagem alocados para um projeto específico.

import matplotlib.pyplot as plt
import numpy as np

y = np.array([25, 10, 45, 20])
mylabels = ["w", "x", "y", "z"]
explodevalues = [0.1, 0.2, 0, 0]
colors = ['tab:blue', 'tab:green', 'tab:orange', 'tab:red']
plt.title("Resources allocated for a random project")
plt.pie(y, labels = mylabels, colors=colors,explode = explodevalues, autopct="%1.1f%%", shadow = True)
plt.show() 

Resultado:

Saída do gráfico de pizza no Mathplotlib

O gráfico acima exibe um gráfico de pizza com quatro fatias rotuladas w, x, y e z, respectivamente. Os valores de explosão definem a que distância do centro da torta as fatias serão colocadas.

No gráfico acima, x está mais longe porque seu valor de explosão é maior que o resto. O atributo shadow adiciona uma sombra ao gráfico de pizza como na imagem, enquanto o autopct define a porcentagem relativa de toda a pizza que cada fatia representa.

#3. Criando um gráfico de histograma

Com um histograma, usaremos uma série de intervalos para representar o intervalo dos valores fornecidos no eixo x.
O eixo y, por outro lado, representará as informações de frequência.

Ao contrário dos outros gráficos, traçar um histograma no Matplotlib requer alguns passos pré-definidos que você precisa seguir para criar o gráfico.

Essas etapas incluem:

  • Crie um bin de intervalos do conjunto de valores de dados que você possui. Você pode usar a função np.random.normal() que pode gerar valores aleatórios para você.
  • Usando uma série de intervalos, distribua valores em um intervalo de valores.
  • Conte os valores que caem dentro de cada intervalo específico.
  • Agora use a função matplotlib.pyplot.hist() para criar o histograma.
  • A função hist() aceita vários parâmetros, incluindo:

    x – Isso representa a sequência da matriz

    bins – Este é um parâmetro opcional que representa intervalos não sobrepostos de variáveis ​​que podem conter inteiros ou uma sequência String.

    range – Define o intervalo superior e inferior dos compartimentos

    align – Este parâmetro controla o alinhamento do histograma. Seja esquerda, direita ou meio.

    color – Define a cor das barras.

    rwidth – Define a largura relativa das barras no histograma para a do bin.

    log – o parâmetro log define uma escala de log no eixo de um histograma.

    O exemplo a seguir plota um histograma com os valores definidos.

    from matplotlib import pyplot as plt
    
    x = [22, 40, 87, 5, 43, 30, 56,73, 55, 54, 11, 20, 51, 5,  50, 60, 70, 80]
    
    plt.hist(x)
    plt.title(Histogram plot example')
    plt.xlabel('x axis')
    plt.ylabel('frequency')
    plt.show()
    

    Resultado:

    Saída do gráfico de histograma em Mathplotlib

    #4. Gráfico de linha no Matplotlib

    O Matplotlib usa sua sub-biblioteca chamada pyplot , que vem com várias funções que ajudam em sua implementação.

      Como gravar uma reunião no Zoom

    Usamos a função plot(), que é uma função genérica que vem com pyplot para plotar os gráficos de linha e diferentes outros tipos de gráficos de linha, incluindo gráficos curvos e gráficos de várias linhas. A criação desses diferentes tipos de gráficos depende dos valores que você passa para o eixo y.

    Ao plotar, importe matplotlib.pyplot e Numpy, que desenham os gráficos. O método plot(x,y) cria o gráfico de linha passando valores aleatórios para os argumentos xey.

    Além disso, você pode passar uma variável de rótulo que rotula o gráfico. A função title nomeia ainda mais o título do gráfico, enquanto as funções xlabel e ylabel nomeiam os eixos. Finalmente, a função show() exibe o gráfico.

    Por exemplo:

    import matplotlib.pyplot as plt
    import numpy as np
    
    x = np.linspace(0, 5, 10)
    
    y = 3*x + 2
    plt.title('Line plot example')
    plt.xlabel('x axis')
    plt.ylabel('y axis')
    plt.plot(x, y)
    plt.show()

    Resultado:

    Saída do gráfico de linha no Mathplotlib

    O atributo np.linspace retorna no gráfico, um conjunto de números uniformemente espaçados em um intervalo específico para os valores x. Isso criará uma matriz de 10 valores no intervalo de 0 e 5. Os valores de y são criados a partir da equação que usa os valores correspondentes de x.

    Criando gráficos de dispersão

    O Matplotlib usa o método scatter() para criar esse gráfico.
    Este método aceita os seguintes parâmetros.

    matplotlib.pyplot.scatter(x_axis_data, y_axis_data, s=None, c=None, marker=None, cmap=None, vmin=None, vmax=None, alpha=None, linewidths=None, edgecolors=None) 

    Os parâmetros x_axis_data e y_axis_data não podem ser deixados em branco, ao contrário do restante dos parâmetros que podem ser opcionais e ter None como seu valor. Enquanto o argumento x_axis_data define uma matriz de dados para o eixo x, o y_axis_data define uma matriz de dados para o eixo y.

    Um exemplo de um gráfico de dispersão no matplotlib

    import matplotlib.pyplot as plt
     
    x =[15, 17, 18, 27, 22, 27, 32, 14, 11, 12, 29, 16]
     
    y =[19, 16, 17, 18, 10, 26, 13, 27, 14, 18, 17, 35]
    plt.title('Scatter plot example')
    plt.xlabel('x variable')
    plt.ylabel('y variable')
    plt.scatter(x, y, c ="green")
     
    # To show the plot
    plt.show()

    Sua saída será:

    Saída do gráfico de dispersão em Mathplotlib

    O que é subplot () no matplotlib

    A função subplot() pode ser usada para desenhar vários gráficos em uma única figura do Matplotlib. Isso permite a visualização e comparação dos vários gráficos dentro da figura.

    Esta função retornará uma tupla com três argumentos; linhas e colunas como primeiro e segundo argumento, respectivamente, e o índice do gráfico atual como terceiro argumento.

    As linhas e colunas definem claramente o layout do Matplotlib.

    Portanto, plt.subplot(2, 1, 1) por exemplo, plotará uma figura Matplotlib com duas linhas e uma coluna, e esse gráfico será o primeiro gráfico.

    Por outro lado, plt.subplot(2, 1, 2) exibe um segundo gráfico com duas linhas e uma coluna.

    A plotagem desses dois gráficos os criará um em cima do outro, como no exemplo abaixo.

    import matplotlib.pyplot as plt
    import numpy as np
    
    #plot 1:
    x = np.array([2, 4, 6, 8])
    y = np.array([3, 6, 9, 12])
    
    plt.subplot(2, 1, 1)
    plt.plot(x,y)
    
    #plot 2:
    x = np.array([3, 6, 9, 12])
    y = np.array([1, 2, 3, 4])
    
    plt.subplot(2, 1, 2)
    plt.plot(x,y)
    
    plt.show()

    A saída do exemplo acima será semelhante à imagem abaixo.

    Usando um exemplo diferente, vamos usar a função subplot para plotar duas figuras com uma linha e duas colunas. Isso exibirá os gráficos lado a lado.

    import matplotlib.pyplot as plt
    import numpy as np
    
    #plot 1:
    x = np.array([2, 4, 6, 8])
    y = np.array([3, 6, 9, 12])
    
    plt.subplot(1, 2, 1)
    plt.plot(x,y)
    
    #plot 2:
    x = np.array([3, 6, 9, 12])
    y = np.array([1, 2, 3, 4])
    
    plt.subplot(1, 2, 2)
    plt.plot(x,y)
    
    plt.show()

    O exemplo acima exibirá o seguinte resultado.

    Bem, isso foi interessantemente interativo, você não acha? 😃

    Palavras finais

    Matplotlib é uma biblioteca de visualização usada no Python. Sua interatividade e facilidade de uso, mesmo para iniciantes, o tornam uma ferramenta ainda melhor para plotagem em Python.

    Este artigo cobriu exemplos dos vários gráficos que as funções que vêm com o Matplotlib podem criar, incluindo gráficos de pizza, gráficos de barras, histogramas e gráficos de dispersão.

    Obviamente, o Python tem várias outras bibliotecas que especialistas em aprendizado de máquina e cientistas de dados podem usar para criar visualizações.

    Você pode explorar mais gráficos que você pode criar com o Matplotlib e quais funções você usará para criar o gráfico.

    Boa trama! 📉📊