Visualizando dados em quatro dimensões com Matplotlib
Ao trabalhar com dados multivariados (representados por mais de uma variável), técnicas de visualização que envolvam vários elementos gráficos são essenciais. O mais comum é o uso da posição. No entanto, cores, formas e tamanho também podem ser utilizados. Nesse tutorial, posição e cor são utilizados para visualizar graficamente dados representados por 4 variáveis.
Este trabalho é feito em linguagem de programação Python e compilado com a ajuda do Google Colab. O leitor pode criar um notebook gratuitamente através do link: https://colab.research.google.com/
Depois, basta dar um nome para seu arquivo onde está a seta vermelha. Digitar seu código onde se encontra a seta verde e executar o código apertando o botão indicado pela seta azul. No exemplo da figura abaixo fizemos um código que imprime a mensagem Hello, world!
Este post é melhor visualizado em um computador de mesa. As imagens não ficam legais em smartphones. No entanto, todos os códigos aqui usados podem ser encontrados aqui.
Sumário
- Importando as bibliotecas
- Importando os dados
- Explorando a variável de interesse
- Escolha das 4 variáveis para visualização
- Visualização das 4 variáveis escolhidas
- Animação mostrando vários ângulos
Importando as bibliotecas
O primeiro passo sempre é importar as bibliotecas. Matplotlib e Seaborn são bibliotecas bem comuns para visualização de dados. Outras duas, pandas e numpy, são excelentes para trabalhar com matrizes e conjuntos de dados. Para importar tudo isso, basta digitar os comandos a seguir no Google Colab:
É interessante mencionar que o Google Colab já vem com todas essas bibliotecas instaladas. Caso esteja usando o Python no seu computador, deverá instalar essas bibliotecas para que tudo funcione perfeitamente.
Importando os dados
O site UCI repository fornece uma grande variedade de conjuntos de dados. Um dos interessantes é o conjunto Wine Data Set que é usado nesse projeto. Este é composto por 13 variáveis que descrevem características do vinho e uma outra mais que determina sua qualidade (classe).
Para importar o conjunto, podemos utilizar a função read_csv da biblioteca pandas. Além disso, é preciso dar o nome correto para as variáveis do conjunto de dados. Estes nomes podem ser encontrados na própria página do Wine Data Set.
Lembre-se que o código acima na versão copiável encontra-se no meu Github. Ao copiar e colar o código acima numa nova célula do Google Colab, é possível ver as cinco primeiras linhas do conjunto de dados.
Explorando a variável de interesse
A variável de interesse neste projeto é a qualidade do vinho. São 59 unidades amostrais de 1ª classe e 48 unidades amostrais de 3ª classe. Apesar de terem dados de vinhos de 2ª classe, por simplicidade, serão consideradas apenas as 1ª e 3ª classes.
O código para fazer o filtro e mostrar a frequência por classe segue abaixo:
Escolha das 4 variáveis para visualização
O objetivo do trabalho é fazer um gráfico que apresente 4 características dos vinhos no conjunto de dados considerado. Uma delas, com certeza, é a variável de interesse ‘Quality’.
Em projetos de visualização e sumarização de dados, é comum querer separar grupos em relação a variável de interesse. Por exemplo, caso esteja analisando um conjunto de dados de clientes e sua variável de interesse seja a “Compra”, essa separação dos clientes em grupos que compram e não compram pode direcionar melhor campanhas de marketing.
Dessa forma serão escolhidas outras três variáveis que melhor separam os vinhos em relação à qualidade dos mesmos. Uma forma simples e rápida de fazer isso é dando uma olhada no pair plot.
Para visualizar a imagem acima no seu Google Colab basta executar o código abaixo em uma nova célula.
Parece que ‘OD280/OD315 of diluted wines’, ‘Hue’ e ‘Proline’ definem bem a qualidade do vinho. Hora de filtrar o Wine Data Set deixando apenas essas três colunas junto a coluna ‘Quality’.
Visualização das 4 variáveis escolhidas
Para visualizar as 4 variáveis escolhidas simultaneamente num único gráfico, os eixos X, Y e Z representarão ‘OD280/OD315 of diluted wines’, ‘Hue’ e ‘Proline’ respectivamente. Pensando na representação cartesiana usual de pontos no plano XY, o eixo Z aqui é como se fosse a altura desses pontos.
Para visualizar a variável ‘Quality’ a cor verde representará os vinhos bons e a cor vermelha representará os vinhos ruins.
O código para fazer tudo isso acima é:
O resultado é apresentado abaixo:
Para obter um gráfico mais completo, é possível inserir legendas, títulos e nomear os eixos X, Y e Z bastando, para isso, inserir os códigos abaixo entre as linhas 16 e 18 do código anterior.
- Nomeando os eixos:
- Configurando e criando as legendas:
O resultado fica como segue:
Animação mostrando vários ângulos
No gráfico anterior apenas um ângulo de visão é apresentado. É possível plotar vários gráficos, um em cada ângulo de visão, e mostrar todos, um por um, no Google Colab, dando um efeito de animação.
O código para animar o gráfico é:
Assim como anteriormente, é possível adicionar legendas, títulos e colocar nomes nos eixos X, Y e Z, além de título.
Espero que tenham gostado!
Desafio
Utilizamos o Wine Data Set do UCI repository. Há vários outros conjuntos de dados nesse site. Tente reproduzir o que fizemos para outro conjunto de dados!