1
resposta

Minha solução para visualização grafica dos dados

import seaborn as sns
import matplotlib.pyplot as plt

# Configurações globais
sns.set(style="whitegrid", palette="Set2")

# Função para adicionar valores acima das barras
def adicionar_valores(ax):
    for p in ax.patches:
        altura = p.get_height()
        ax.text(p.get_x() + p.get_width() / 2., altura + 0.5, f'{altura:.1f}', ha='center', fontsize=9)

# 1. Atraso médio por companhia aérea
plt.figure(figsize=(10, 6))
average_delay_airline = dados.groupby('airline')['delay'].mean().reset_index()
palette = sns.color_palette("Blues", n_colors=len(average_delay_airline))
ax = sns.barplot(x='airline', y='delay', data=average_delay_airline, palette=palette, ci=None)
adicionar_valores(ax)
plt.title('Companhias Aéreas vs Atrasos Médios')
plt.xlabel('Companhia Aérea')
plt.ylabel('Atraso Médio (minutos)')
plt.tight_layout()
plt.show()

# 2. Número de voos por companhia aérea
plt.figure(figsize=(10, 6))
airlines = dados['airline'].value_counts()
palette = sns.color_palette("Greens", n_colors=len(airlines))
ax = sns.countplot(data=dados, x='airline', palette=palette)
adicionar_valores(ax)
plt.title('Número de Voos por Companhia Aérea')
plt.xlabel('Companhia Aérea')
plt.ylabel('Número de Voos')
plt.tight_layout()
plt.show()

# 3. Atraso médio por tipo de voo (Schengen)
plt.figure(figsize=(8, 6))
average_delay_schengen = dados.groupby('schengen')['delay'].mean().reset_index()
palette = sns.color_palette("Purples", n_colors=len(average_delay_schengen))
ax = sns.barplot(x='schengen', y='delay', data=average_delay_schengen, palette=palette, ci=None)
adicionar_valores(ax)
plt.title('Tipo do Voo vs Atrasos Médios')
plt.xlabel('Tipo do Voo')
plt.ylabel('Atraso Médio (minutos)')
plt.tight_layout()
plt.show()

# 4. Número de voos por tipo de voo
plt.figure(figsize=(8, 6))
schengen_counts = dados['schengen'].value_counts()
palette = sns.color_palette("Oranges", n_colors=len(schengen_counts))
ax = sns.countplot(data=dados, x='schengen', palette=palette)
adicionar_valores(ax)
plt.title('Número de Voos por Tipo do Voo')
plt.xlabel('Tipo do Voo')
plt.ylabel('Número de Voos')
plt.tight_layout()
plt.show()

# 5. Atraso médio em dias de feriado vs não feriado
plt.figure(figsize=(8, 6))
average_delay_holiday = dados.groupby('is_holiday')['delay'].mean().reset_index()
palette = sns.color_palette("Reds", n_colors=len(average_delay_holiday))
ax = sns.barplot(x='is_holiday', y='delay', data=average_delay_holiday, palette=palette, ci=None)
adicionar_valores(ax)
plt.title('Feriado vs Atrasos Médios')
plt.xlabel('É Feriado?')
plt.ylabel('Atraso Médio (minutos)')
plt.tight_layout()
plt.show()

# 6. Número de voos por tipo de aeronave
plt.figure(figsize=(12, 6))
order = dados['aircraft_type'].value_counts().index
palette = sns.color_palette("Spectral", n_colors=len(order))
ax = sns.countplot(data=dados, x='aircraft_type', order=order, palette=palette)
plt.xticks(rotation=70)
adicionar_valores(ax)
plt.title('Número de Voos por Tipo da Aeronave')
plt.xlabel('Tipo da Aeronave')
plt.ylabel('Número de Voos')
plt.tight_layout()
plt.show()
1 resposta

Oi, Paulo! Tudo bom?

Excelente! Siga praticando com os desafios e sempre compartilhe conosco.

Você soube elaborar visualizações com o Seaborn de forma eficiente, aproveitou o uso de paletas personalizadas para dar mais clareza aos gráficos e entendeu como o agrupamento de dados com groupby() é essencial para análises comparativas.

Permaneça postando as suas soluções, com certeza isso ajudará outros estudantes e tem grande relevância para o fórum.

Ícone de sugestão Para saber mais:

Sugestão de conteúdo para você mergulhar ainda mais sobre o tema:

Alguns materiais estão em inglês, mas é possível compreendê-los usando o recurso de tradução de páginas do próprio navegador.

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

AluraConte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!