Olá! Eu sou a Mirla Costa, instrutora de Dados na Alura, e te dou boas-vindas a este curso.
Audiodescrição: Mirla se descreve como uma mulher de pele clara, com cabelos pretos e cacheados médios, e olhos castanho-escuros. Ela usa óculos de armação arredondada prateada, veste uma camisa preta, e está sentada em frente a um microfone, com uma parede clara ao fundo iluminada em gradiente azul e verde, com duas estantes contendo livros e enfeites.
Vamos relembrar conteúdos que envolvem gráficos de composição e de relacionamento?
Para revisar esses conteúdos, criamos um material que será disponibilizado neste curso e utilizaremos durante este vídeo. Dito isso, vamos para o material no notebook do Google Colab.
Iniciaremos com os gráficos de composição, utilizados quando desejamos mostrar como diferentes partes contribuem para a construção de um todo. Podemos separá-los em duas categorias:
- Gráficos de composição estáticos, que mostram como diferentes partes contribuem para um todo em um momento específico;
- E gráficos de composição dinâmicos, que tratam ao longo do tempo ou em vários períodos.
Para construir esses gráficos, utilizaremos bibliotecas de visualização, como a matplotlib.pyplot
, a plotly.graph_objects
, e o numpy
para suporte.
import matplotlib.pyplot as plt
import plotly.graph_objects as go
import numpy as np
Vamos executar a célula para importar essas bibliotecas e criar nosso primeiro gráfico.
O gráfico de composição que abordaremos é o gráfico de pizza. Podemos utilizá-lo para mostrar, de forma simples, como poucas partes contribuem para um todo.
Devemos ter cuidado ao usá-lo, mas, para o caso que apresentaremos, faz sentido utilizá-lo.
Queremos mostrar a proporção das respostas "Sim" e "Não" em relação a uma pergunta feita aos clientes. Para isso, temos alguns dados, como as respostas
e as porcentagens
:
# Dados
respostas = ['Sim', 'Não'] # Categorias de respostas
porcentagens = [77, 23] # Proporção de cada categoria
cores = ['#76c7c0', '#ff6f61'] # Tons suaves de verde e vermelho
Para construir esse gráfico de pizza, utilizamos a função plt.pie()
, da biblioteca matplotlib
. Precisamos informar as porcentagens, as respostas, e podemos ajustar o gráfico conforme desejado.
# Criando o gráfico de pizza
plt.figure(figsize=(6, 6)) # Define o tamanho da figura (6x6 polegadas)
plt.pie(
porcentagens,
labels=respostas, # Adiciona os rótulos nas fatias
colors=cores, # Define as cores de cada fatia
autopct='%1.1f%%', # Exibe os percentuais nas fatias (1 casa decimal)
wedgeprops={'edgecolor': 'white'}, # Adiciona bordas brancas às fatias
)
# Adicionando o título
plt.title('Você indicaria nosso serviço?', fontsize=18, fontweight='bold')
# Exibe o gráfico
plt.tight_layout() # Ajusta automaticamente os elementos do gráfico para evitar sobreposição (como textos ou rótulos)
plt.show()
Observação: O código está comentado para consulta posterior no material.
Após executar a célula da criação dos dados, vamos executar a criação do gráfico de pizza. No final, podemos observar o título do gráfico e o gráfico de pizza com as porcentagens bem expostas.
Outro gráfico interessante é o gráfico de cascata, utilizado para mostrar como saímos de um todo até chegar a um resultado final, mostrando alterações positivas e negativas.
Neste caso, queremos mostrar como sair de uma receita bruta até o lucro líquido, detalhando os decréscimos de cada componente. Informamos indicadores e características, começando com o valor absoluto (absolute
), seguido de valores relativos (relative
) e do valor total (total
).
# Dados
indicadores = ['Receita Bruta', 'Impostos', 'Despesas Operacionais', 'Lucro Líquido'] # Categorias
valores = [500000, -100000, -150000, 250000] # Valores em reais
medidas = ['absolute', 'relative', 'relative', 'total'] # Configuração para cascata
Para construir isso, utilizamos a biblioteca plotly
e a função Waterfall()
, onde especificamos as características, os valores, adicionamos títulos e também rótulos.
# Configurando o gráfico de cascata
fig = go.Figure(
go.Waterfall(
measure=medidas, # Define o tipo de valor: 'absolute' (início), 'relative' (intermediários), 'total' (final)
x=indicadores, # Categorias no eixo X
y=valores, # Valores associados a cada categoria
text=[f'R$ {v:,.2f}' for v in valores], # Formata os rótulos como valores monetários
)
)
# Adicionando título e legenda
fig.update_layout(
title="Finanças da Empresa", # Título do gráfico
font=dict(size=14), # Configura o tamanho da fonte
plot_bgcolor="white", # Define o fundo como branco
yaxis_title="Valores (R$)", # Título do eixo Y
)
# Exibindo o gráfico
fig.show()
Ao executar a célula, temos um gráfico de cascata que parte de um valor total até o lucro líquido:
Agora vamos para a parte dinâmica, onde podemos mostrar outros períodos além do período fixo estabelecido anteriormente. Para isso, trouxemos um exemplo de gráficos de barras empilhadas, que mostram como categorias influenciam o valor final, indicado para poucos períodos.
Apresentaremos a composição de tipos de acesso a um site ao longo de três trimestres:
- 1º Trimestre;
- 2º Trimestre;
- 3º Trimestre.
Além disso, temos os tipos de acesso: redes_sociais
; pesquisa_google
; ou acesso_direto
.
# Dados
trimestres = ['1º Trimestre', '2º Trimestre', '3º Trimestre'] # Períodos
redes_sociais = [1200, 1500, 1700] # Acessos via redes sociais
pesquisa_google = [900, 1100, 1400] # Acessos via pesquisa no Google
acesso_direto = [800, 700, 600] # Acessos diretos
Após executar os dados, vamos construir o gráfico efetivamente com a biblioteca matplotlib
, utilizando a função plt.bar()
, responsável por criar as barras.
Após criar a primeira barra, as próximas precisam ser empilhadas, iniciando onde a última terminou. Especificamos isso utilizando o parâmetro bottom
, definindo como valor o valor da primeira barra (redes_sociais
) ou das barras anteriores.
# Configuração das barras
largura_barra = 0.6 # Largura das barras
x = np.arange(len(trimestres)) # Posições no eixo X
# Criando o gráfico de barras empilhadas
plt.figure(figsize=(10, 6))
plt.bar(x, redes_sociais, label='Redes Sociais', color='#76c7c0', width=largura_barra)
plt.bar(x, pesquisa_google, label='Pesquisa no Google', color='#4a90e2', width=largura_barra, bottom=redes_sociais)
plt.bar(x, acesso_direto, label='Acesso Direto', color='#ff6f61', width=largura_barra,
bottom=np.array(redes_sociais) + np.array(pesquisa_google))
# Adicionando informações no gráfico
plt.xticks(x, trimestres, fontsize=12) # Define os rótulos no eixo X
plt.ylabel('Número de Acessos', fontsize=14) # Define o rótulo do eixo Y
plt.title('Formas de Acesso ao Site por Trimestre', fontsize=16, loc='left') # Adiciona o título
plt.legend() # Adiciona a legenda
# Ajuste final e exibição
plt.tight_layout()
plt.show()
Uma vez executada a célula, conseguimos obter um gráfico de composição dinâmico:
Dica! Outro exemplo de gráfico de composição dinâmico são os gráficos de áreas empilhadas, que deixaremos como expansão do material para conferência posterior.
Agora, podemos partir para os gráficos de relacionamento. Esses tipos de gráfico são utilizados em visualizações quando queremos mostrar a relação entre variáveis.
Podemos usar um gráfico de dispersão para mostrar a relação entre duas variáveis numéricas. Neste exemplo, mostramos a relação entre valores obtidos em vendas e investimento em marketing.
Para isso, criamos dados que se relacionam entre si. Observe abaixo:
# Dados
np.random.seed(40) # Garante reprodutibilidade
investimento_marketing = np.linspace(1000, 10000, 100) # Valores de investimento (R$1.000 a R$10.000)
vendas = investimento_marketing * 2 + np.random.normal(0, 500, 100) # Vendas com uma relação linear e variação aleatória
Para criar o gráfico de dispersão, utilizamos a biblioteca matplotlib
com a função plt.scatter()
, que cria um gráfico de pontos. No escopo, precisamos informar os dados necessários.
# Criando o gráfico de dispersão
plt.figure(figsize=(10, 6)) # Define o tamanho da figura
plt.scatter(investimento_marketing, vendas, color='#4a90e2') # Cria os pontos de dispersão (azul)
# Personalizando o gráfico
plt.title('Relação entre Investimento em Marketing e Vendas', fontsize=16, loc='left') # Adiciona o título
plt.xlabel('Investimento em Marketing (R$)', fontsize=12) # Adiciona o rótulo do eixo X
plt.ylabel('Vendas (R$)', fontsize=12) # Adiciona o rótulo do eixo Y
plt.grid(True, alpha=0.4) # Adiciona uma grade leve no fundo
# Ajustando o layout e exibindo o gráfico
plt.tight_layout() # Ajusta os elementos para evitar sobreposição
plt.show()
Executando a célula, temos o seguinte resultado:
Dica! Além desse gráfico, deixamos um material de expansão para você conhecer outros gráficos de relacionamento. Confira e aprenda mais, ou relembre como construir esses gráficos.
Neste vídeo, revisamos como construir gráficos de composição e relacionamento utilizando Python e bibliotecas como matplotlib
e plotly
. Agora, você tem o conhecimento necessário para avançar para os exercícios e praticar o que foi abordado. Bons estudos, e até a próxima!
O curso Python: gráficos de composição e relacionamento possui 8 minutos de vídeos, em um total de 13 atividades. Gostou? Conheça nossos outros cursos de Data Science em Data Science, ou leia nossos artigos de Data Science.
Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:
Impulsione a sua carreira com os melhores cursos e faça parte da maior comunidade tech.
1 ano de Alura
Assine o PLUS e garanta:
Formações com mais de 1500 cursos atualizados e novos lançamentos semanais, em Programação, Inteligência Artificial, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.
A cada curso ou formação concluído, um novo certificado para turbinar seu currículo e LinkedIn.
No Discord, você tem acesso a eventos exclusivos, grupos de estudos e mentorias com especialistas de diferentes áreas.
Faça parte da maior comunidade Dev do país e crie conexões com mais de 120 mil pessoas no Discord.
Acesso ilimitado ao catálogo de Imersões da Alura para praticar conhecimentos em diferentes áreas.
Explore um universo de possibilidades na palma da sua mão. Baixe as aulas para assistir offline, onde e quando quiser.
Acelere o seu aprendizado com a IA da Alura e prepare-se para o mercado internacional.
1 ano de Alura
Todos os benefícios do PLUS e mais vantagens exclusivas:
Luri é nossa inteligência artificial que tira dúvidas, dá exemplos práticos, corrige exercícios e ajuda a mergulhar ainda mais durante as aulas. Você pode conversar com a Luri até 100 mensagens por semana.
Aprenda um novo idioma e expanda seus horizontes profissionais. Cursos de Inglês, Espanhol e Inglês para Devs, 100% focado em tecnologia.
Transforme a sua jornada com benefícios exclusivos e evolua ainda mais na sua carreira.
1 ano de Alura
Todos os benefícios do PRO e mais vantagens exclusivas:
Mensagens ilimitadas para estudar com a Luri, a IA da Alura, disponível 24hs para tirar suas dúvidas, dar exemplos práticos, corrigir exercícios e impulsionar seus estudos.
Envie imagens para a Luri e ela te ajuda a solucionar problemas, identificar erros, esclarecer gráficos, analisar design e muito mais.
Escolha os ebooks da Casa do Código, a editora da Alura, que apoiarão a sua jornada de aprendizado para sempre.