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()