Pular para o conteúdo principal

Python intermediário para ciência de dados: Matplotlib

Aprenda a visualizar dados reais com as funções do matplotlib.
Atualizado 17 de set. de 2026  · 11 min lido

Explorar com IA

ChatGPTClaudePerplexity

Trecho do curso: Python intermediário para ciência de dados - Matplotlib

Abaixo está um trecho — vídeo e transcrição — do primeiro capítulo do curso Intermediate Python for Data Science. Aqui você acessa o capítulo completo, com exercícios interativos.

Gráficos básicos com matplotlib

Oi, meu nome é Filip e sou cientista de dados na DataCamp. Neste curso intermediário de Python, você vai aprimorar ainda mais suas habilidades em Python para ciência de dados. Você vai aprender a visualizar dados e a armazená-los em novas estruturas. Ao longo do caminho, vai dominar estruturas de controle, essenciais para personalizar o fluxo de seus scripts e algoritmos. Vamos fechar este capítulo com um estudo de caso, juntando tudo o que você aprendeu para resolver um problema bem legal.

Este primeiro capítulo é sobre visualização de dados, uma parte muito importante da análise. Primeiro, você vai usá-la o tempo todo para explorar seu conjunto de dados. Quanto melhor entender seus dados, melhor vai extrair insights. E, quando encontrar esses insights, de novo, a visualização é fundamental para compartilhar suas descobertas com outras pessoas. Como exemplo, dê uma olhada neste gráfico lindo.

Ele foi feito pelo professor sueco Hans Rosling. Suas palestras sobre desenvolvimento global já foram vistas milhões de vezes. O que as torna tão envolventes é que, ao criar visualizações incríveis, ele deixa os dados contarem sua própria história. Aqui vemos um gráfico de bolhas, em que cada bolha representa um país. Quanto maior a bolha, maior a população do país — por isso as duas maiores aqui são China e Índia.

Há 2 eixos. O eixo horizontal mostra o PIB per capita em dólares americanos. O eixo vertical mostra a expectativa de vida. Dá para ver claramente que as pessoas vivem mais em países com maior PIB per capita. Ainda assim, existe uma grande diferença de expectativa de vida entre países no mesmo nível de renda.

Por que estou te contando tudo isso? Porque, até o final deste capítulo, você será capaz de construir esse gráfico lindo por conta própria.

Existem muitos pacotes de visualização em Python, mas a "mãe" de todos é o matplotlib. Você vai precisar do subpacote pyplot. Por convenção, ele é importado como plt, assim.

No nosso primeiro exemplo, vamos tentar entender a evolução da população mundial. Eu tenho uma lista com anos, year, e uma lista com as populações correspondentes, em bilhões, pop. Em 1970, por exemplo, 3,7 bilhões de pessoas viviam no planeta.

Para plotar esses dados como um gráfico de linhas, chamamos plt.plot() e usamos as duas listas como argumentos. O primeiro argumento corresponde ao eixo horizontal e o segundo ao vertical. Você pode achar que o gráfico vai aparecer agora, mas o Python é meio preguiçoso. Ele espera a função show() para realmente exibir o gráfico. Isso porque você pode querer adicionar alguns elementos antes de mostrar, como títulos e rótulos. Vou falar mais sobre isso já já. Só lembre: a função plot() diz ao Python o que e como plotar. show() de fato exibe o gráfico.

Ao olhar o gráfico, vemos os anos no eixo horizontal e as populações no vertical. Há quatro pontos de dados, e o Python desenha uma linha entre eles. Em 1950, a população mundial era cerca de 2,5 bilhões. Em 2010, por volta de 7 bilhões. Ou seja, quase triplicou em sessenta anos — dá um certo susto. E se a população continuar crescendo nesse ritmo? O mundo vai ficar superpovoado? Você vai investigar isso nos exercícios.

Deixa eu apresentar outro tipo de gráfico: o de dispersão (scatter plot). Para criá-lo, podemos partir do código anterior. Desta vez, basta trocar a função plot por scatter. O gráfico de dispersão simplesmente mostra todos os pontos individuais; o Python não liga os pontos com uma linha. Em muitas aplicações, o scatter é uma escolha melhor que o gráfico de linhas, então guarde bem essa função. Dá até para dizer que é uma forma mais "honesta" de plotar os dados, porque fica claro que o gráfico se baseia em apenas quatro pontos.

Agora que cobrimos o básico do matplotlib, é a sua vez de criar gráficos incríveis!


# define a simple function
import matplotlib.pyplot as plt
year = [1950, 1970, 1990, 2010]
pop = [2.519, 3.692, 5.263, 6.972]
plt.plot(year, pop)
plt.show()

import matplotlib.pyplot as plt
year = [1950, 1970, 1990, 2010]
pop = [2.519, 3.692, 5.263, 6.972]
plt.scatter(year, pop)
plt.show()

O histograma

Neste vídeo, vou apresentar o histograma. O histograma é um tipo de visualização muito útil para explorar seus dados. Ele ajuda a ter uma noção da distribuição das variáveis. Para ver como funciona, imagine 12 valores entre 0 e 6. Coloquei todos em uma reta numérica aqui. Para construir um histograma desses valores, você pode dividir a reta em partes iguais, chamadas de bins (faixas). Suponha que você use 3 bins, cada um com largura 2. Em seguida, conte quantos pontos de dados caem em cada bin. Há 4 pontos no primeiro, 6 no segundo e 2 no terceiro. Por fim, desenhe uma barra para cada bin. A altura da barra corresponde ao número de pontos que caem naquela faixa. O resultado é um histograma, que nos dá uma visão clara de como os 12 valores estão distribuídos. A maioria está no meio, mas há mais valores abaixo de 2 do que acima de 4.

Claro que o matplotlib também cria histogramas. Como antes, você começa importando o pacote pyplot dentro do matplotlib. Depois, use a função hist(). Vamos abrir a documentação. Há vários argumentos possíveis, mas os dois primeiros são os mais importantes. x deve ser a lista de valores para a qual você quer construir o histograma. Você pode usar o segundo argumento, bins, para dizer em quantas faixas os dados devem ser divididos. Com base nesse número, hist() encontra automaticamente limites apropriados para cada faixa e calcula quantos valores há em cada uma. Se você não especificar bins, o padrão é 10.

Então, para gerar o histograma que você viu antes, começamos criando a lista com os 12 valores. Em seguida, chamamos hist() passando essa lista como entrada, correspondendo ao argumento x. Também defini bins como 3, para dividir os valores em três faixas. Ao chamar show, temos um histograma bem legal. Histogramas são ótimos para enxergar o panorama geral. Como exemplo, veja esta chamada pirâmide etária. A distribuição de idades é mostrada, para homens e mulheres, na União Europeia. Repare que os histogramas foram girados 90 graus; agora as faixas são horizontais. Os bins mais largos estão nas idades de 40 a 44, com 20 milhões de homens e 20 milhões de mulheres — a geração baby boomer.

Esses números são de 2010. O que você acha que muda em 2050? Vamos ver. A distribuição fica mais achatada, e a geração baby boomer envelhece. Num piscar de olhos, dá para perceber como a demografia muda ao longo do tempo. Esse é o poder dos histogramas em ação! Agora, parta para os exercícios e experimente com histogramas você mesmo!


values = [0,0.6,1.4,1.6,2.2,2.5,2.6,3.2,3.5,3.9,4.2,6]
import matplotlib.pyplot as plt
plt.hist(values,bins=3)
plt.show()

Personalização

Criar um gráfico é uma coisa. Fazer o gráfico certo, que deixa a mensagem cristalina, é o verdadeiro desafio. Para cada visualização, há muitas opções. Primeiro, existem diferentes tipos de gráfico. E, para cada um, dá para fazer infinitas personalizações: cores, formas, rótulos, eixos e por aí vai. A escolha depende, um, dos dados, e dois, da história que você quer contar com eles. Como há tantas possibilidades, a melhor forma de aprender é com exemplos.

Vamos começar com o código deste script para construir um gráfico de linhas simples. Ele é parecido com o que criamos no primeiro vídeo, mas agora as listas year e pop têm mais dados, incluindo projeções até 2100, previstas pela ONU. Ao executar o script, já temos um gráfico bem bacana: ele mostra que a explosão populacional em curso deve desacelerar até o final do século.

Mas dá para melhorar. Primeiro, precisa ficar mais claro quais dados estamos exibindo, especialmente para quem vê o gráfico pela primeira vez. Segundo, o gráfico precisa mesmo chamar a atenção para a explosão populacional. A primeira coisa que você sempre deve fazer é rotular os eixos. Vamos adicionar as funções xlabel() e ylabel(). Como entradas, passamos as strings que ficarão ao lado dos eixos. Certifique-se de chamar essas funções antes de show(), senão as personalizações não aparecem. Ao executar de novo, os eixos estão anotados. Também vamos adicionar um título ao gráfico, com a função title. Passamos o título "World Population Projections" como argumento. E lá está o título!

Usando xlabel, ylabel e title, damos mais contexto ao leitor: agora dá para saber do que o gráfico trata. Para colocar o crescimento em perspectiva, quero que o eixo y comece em zero. Dá para fazer isso com yticks(). A primeira entrada é uma lista, neste exemplo com os números de zero a dez, de 2 em 2. Ao executar, o gráfico muda: a curva sobe. Agora fica claro que, já em 1950, havia cerca de 2,5 bilhões de pessoas no planeta.

Depois, para deixar claro que estamos falando em bilhões, podemos adicionar um segundo argumento a yticks(), que é uma lista com os nomes exibidos nos marcadores. Essa lista deve ter o mesmo comprimento da primeira. O marcador 0 recebe o rótulo 0, o 2 recebe 2B, o 4 recebe 4B e assim por diante. B aqui significa Billions (bilhões). Ao rodar essa versão do script, os rótulos mudam como esperado — ótimo.

Por fim, vamos adicionar mais dados históricos para enfatizar a explosão populacional nos últimos 60 anos. Na Wikipedia, encontrei a população mundial para os anos 1800, 1850 e 1900. Posso escrevê-los em forma de lista e somá-los às listas pop e year com o sinal de mais. Se eu executar o script de novo, três pontos são adicionados ao gráfico, dando uma visão mais completa. É assim que você transforma um gráfico de linhas comum em uma visualização com uma história clara para contar! Agora é com você. Vá para os exercícios, personalize aos poucos o gráfico de desenvolvimento mundial e torne-se o próximo Hans Rosling!


import matplotlib.pyplot as plt
import pandas as pd
year = list(range(1950, 2101))
pop = [2.53,2.57,2.62,2.67,2.71,2.76,2.81,2.86,2.92,2.97,3.03,3.08,3.14,3.2,3.26,3.33,3.4,3.47,3.54,3.62,3.69,3.77,3.84,3.92,4.,4.07,4.15,4.22,4.3,4.37,4.45,4.53,4.61,4.69,4.78,4.86,4.95,5.05,5.14,5.23,5.32,5.41,5.49,5.58,5.66,5.74,5.82,5.9,5.98,6.05,6.13,6.2,6.28,6.36,6.44,6.51,6.59,6.67,6.75,6.83,6.92,7.,7.08,7.16,7.24,7.32,7.4,7.48,7.56,7.64,7.72,7.79,7.87,7.94,8.01,8.08,8.15,8.22,8.29,8.36,8.42,8.49,8.56,8.62,8.68,8.74,8.8,8.86,8.92,8.98,9.04,9.09,9.15,9.2,9.26,9.31,9.36,9.41,9.46,9.5,9.55,9.6,9.64,9.68,9.73,9.77,9.81,9.85,9.88,9.92,9.96,9.99,10.03,10.06,10.09,10.13,10.16,10.19,10.22,10.25,10.28,10.31,10.33,10.36,10.38,10.41,10.43,10.46,10.48,10.5,10.52,10.55,10.57,10.59,10.61,10.63,10.65,10.66,10.68,10.7,10.72,10.73,10.75,10.77,10.78,10.79,10.81,10.82,10.83,10.84,10.85]
pop = [1,1.262,1.650] + pop
year = [1800,1850,1900] + year
plt.plot(year, pop)
plt.xlabel('Year')
plt.ylabel('Population')
plt.title('World Population Projections')
plt.yticks([0,2,4,6,8,10],['0','2B','4B','6B','8B','10B'])
plt.show()
Tópicos
Visualização de dados
Relacionado

Tutorial

Histogramas no Matplotlib

Aprenda sobre histogramas e como você pode usá-los para obter insights dos dados com a ajuda do matplotlib.
Aditya Sharma's photo

Aditya Sharma

8 min

Tutorial

Introdução à plotagem com Matplotlib em Python

Este tutorial demonstra como usar o Matplotlib, uma poderosa biblioteca de visualização de dados em Python, para criar gráficos de linha, barra e dispersão com dados do mercado de ações.

Kevin Babitz

25 min

Tutorial

Gráfico de linha de série temporal do Matplotlib

Este tutorial explora como criar e personalizar gráficos de linha de séries temporais no matplotlib.
Elena Kosourova's photo

Elena Kosourova

8 min

line plot python

Tutorial

Gráficos de linhas no MatplotLib com Python

Este tutorial prático se aprofunda na criação e na personalização de gráficos de linhas com o Matplotlib, uma biblioteca avançada de visualização de dados em Python.
Arunn Thevapalan's photo

Arunn Thevapalan

11 min

Tutorial

Guia passo a passo para criar mapas em Python usando a biblioteca Plotly

Faça seus dados se destacarem com mapas impressionantes criados com Plotly em Python
Moez Ali's photo

Moez Ali

7 min

Tutorial

Tipos de gráficos de dados e como criá-los em Python

Explore vários tipos de gráficos de dados, desde os mais comuns até os avançados e não convencionais, o que eles mostram, quando usá-los, quando evitá-los e como criá-los e personalizá-los em Python.
Elena Kosourova's photo

Elena Kosourova

15 min

Ver MaisVer Mais