Tabela Realizadas no Trabalho

A seguinte tabela mostra o total de sobreviventes e não sobreviventes.

Distribuição total de passageiros sobreviventes e não sobreviventes
Sobreviveu | Total de passageiros
No 1490
Yes 711
Sobrevivência da tripulação
Estado Frequência Absoluta Percentagem
Não sobreviveu 673 76
Sobreviveu 212 24
Maximos e minimos de sobreviventes e nao sobreviventes por classe
Observacao Quantidade Classe Percentagem
Máximo de sobreviventes 203 1st 15.4
Mínimo de sobreviventes 118 2nd 9.0
Máximo de não sobreviventes 528 3rd 40.1
Mínimo de não sobreviventes 122 1st 9.3
Distribuição de passageiros por classe
Classe Nro. de Passageiros Percentagem
1st 325 25
2nd 285 22
3rd 706 54
Tabela de Análise Comparativa dos Grupos de Passageiros
Classe Grupo Demográfico Nº de Passageiros Sobreviventes Taxa de sobrivevência
Homens 175 57 33
Mulheres e Crianças 150 146 97
Mulheres e Crianças 117 104 89
Mulheres e Crianças 244 103 42

Gráficos

#---------------------------------------------------------------------------#
soma_sobrev$Freq_relativa <- round(soma_sobrev$Freq / sum(soma_sobrev$Freq) * 100)

bp_soma_sobrev <- barplot(
  soma_sobrev$Freq_relativa,
  names.arg = soma_sobrev$Class,
  col = "skyblue",
  ylab = "Percentagem",
  xlab = "Classe",
  main = "Percentagem de sobreviventes \ndo total de passageiros sobreviventes por classe",
  ylim = c(0, max(soma_sobrev$Freq_relativa)*1.2)
)

#Código para colocar as percentagems
text(
  x = bp_soma_sobrev,
  y = soma_sobrev$Freq_relativa + 2,
  labels = paste0(soma_sobrev$Freq_relativa, "%"),
  col = "black",
  cex = 0.8
)

#---------------------------------------------------------------------------#
#---------------------------------------------------------------------------#
soma_sobrev$Freq_relativa_p <- round((soma_sobrev$Freq / num_passageiros_non_crew) * 100)

bp_soma_sobrev_p <- barplot(
  soma_sobrev$Freq_relativa_p,
  names.arg = soma_sobrev$Class,
  col = "black",
  ylab = "Percentagem",
  xlab = "Classe",
  main = "Percentagem de sobreviventes \ndo total de passageiros por classe",
  ylim = c(0, max(soma_sobrev$Freq_relativa_p)*1.2)
)

#Código para colocar as percentagems
text(
  x = bp_soma_sobrev_p,
  y = soma_sobrev$Freq_relativa_p + 2,
  labels = paste0(soma_sobrev$Freq_relativa_p, "%"),
  col = "black",
  cex = 0.8
)

#---------------------------------------------------------------------------#

#Criamos coluna com frequência relativa no df cruzado de classe e sobrevivência
soma_por_classe$Freq_relativa = (soma_por_classe$Freq / num_passageiros_non_crew)

#Criamos um novo df cruzado com os percentagems
tabela_classes = xtabs(round(Freq_relativa*100) ~ Survived + Class, data = soma_por_classe)


graf_barras_class = barplot( tabela_classes[,1:3],
  col = c("black","skyblue"),
              main = "Porcentagem de supervivência por classe",
              ylab = "Percentagem",
              xlab = "Classes",
              ylim = c(0, max(colSums(tabela_classes)) * 1.5)
)

legend("topright",                    
       legend = c("Não sobreviveu", "Sobreviveu"),      
       fill = c("black", "skyblue"),
       bty = "n",                      
       cex = 0.8)

# Código feito pela IA para ajudar com as legendas percentuais dentro de cada retângulo do gráfico
altura_acum <- apply(tabela_classes, 2, cumsum)

for(i in 1:nrow(tabela_classes)) {          
  for(j in 1:ncol(tabela_classes)) {        
    text(
      x = graf_barras_class[j],                    
      y = if(i == 1) tabela_classes[i,j]/2 else altura_acum[i,j] - tabela_classes[i,j]/2,  
      labels = paste0(round(tabela_classes[i,j],1), "%"),
      col = "white",
      cex = 0.8
    )
  }
}

#---------------------------------------------------------------------------#

# Extraimos o total dos data frame por classe
totais_classe = freq_filtrado_classe[,1:2]

#A partir do df dos totais criamos um data frame com os 'nomes' das calsses str
classes = as.character(totais_classe$Class)

#Criamos un vetor com os nomes dos graficos pois pretendemos iterar
titulos_pt = c("1ª Classe", "2ª Classe", "3ª Classe")

par(mfrow = c(1, 3), mar = c(1,1,1,1), oma = c(0,0,2,0), xpd = TRUE)

for (i in 1:3){
  cl <- classes[i]
  
  total <- totais_classe$Freq[totais_classe$Class == cl]
  
  val_graf <- round(
    (soma_por_classe$Freq[soma_por_classe$Class == cl] / total) * 100
  ,1)
  
  pie(
    val_graf,
    col = c("black", "skyblue"),
    labels = paste0(val_graf, "%"),
    radius = 1
  )
  
  title(titulos_pt[i], line = -5)
}

legend("bottom",
       legend = c("Nao Sobreviveu", "Sobreviveu"),
       fill = c("black", "skyblue"),
       horiz = TRUE,
       bty = "n",
       inset = c(0, 0.20),
       xpd = TRUE,
       cex = 0.8
)

#---------------------------------------------------------------------------#
# Gráfico de Barras 1ª Classe: Homens vs Mulheres e Cianças
pH1 = round(nro_passageiros_class1_homens_S / nro_passageiros_class1_homens *100)
pMC1 = round(nro_passageiros_class1_MC_S / nro_passageiros_class1_MC * 100)
pH1MC1 = c(pH1, pMC1)

H1CM1 = barplot(
  pH1MC1,
  names.arg = c("Homens 1ª Classe", "Mulheres e Crianças 1ª Classe"),
  xlab = "Grupo Demográfico",
  ylab = "Taxa de Sobrevivência (%)",
  main = "1ª Classe",
  col = "lightblue",
  ylim = c(0, max(pH1MC1)*1.2)
)

text(
  x = H1CM1,
  y = pH1MC1,                  
  labels = paste0(pH1MC1, "%"), 
  pos = 3,                       
  col = "black",
  cex = 0.8
)

#---------------------------------------------------------------------------#
# Gráfico de Barras: Homens da 1ª Classe vs Mulheres e Crianças da 2ª Classe

pMC2 = round(nro_passageiros_class2_MC_S / nro_passageiros_class2_MC * 100)

pH1MC2 = c(pH1, pMC2)

H1MC2 = barplot(
  pH1MC2,
  names.arg = c("Homens 1ª Classe", "Mulheres e Crianças 2ª Classe"),
  xlab = "Grupo Demográfico",
  ylab = "Taxa de Sobrevivência (%)",
  main = "1ª Classe VS 2ª Classe",
  ylim = c(0, 100),
  col = "lightblue"
)

text(
  x = H1MC2,                 
  y = pH1MC2,               
  labels = paste0(pH1MC2, "%"), 
  pos = 3,
  col = "black",
  cex = 0.8
)

#---------------------------------------------------------------------------#
# Gráfico de Barras: Homens da 1ª Classe vs Mulheres e Crianças da 3ª Classe

pMC3 = round(nro_passageiros_class3_MC_S / nro_passageiros_class3_MC * 100)

pH1MC3 = c(pH1, pMC3)

H1MC3= barplot(
  pH1MC3,
  names.arg = c("Homens 1ª Classe", "Mulheres e Crianças 2ª Classe"),
  xlab = "Grupo Demográfico",
  ylab = "Taxa de Sobrevivência (%)",
  main = "1ª Classe VS 2ª Classe",
  ylim = c(0, 100),
  col = "lightblue"
)

text(
  x = H1MC3,                 
  y = pH1MC3,               
  labels = paste0(pH1MC3, "%"), 
  pos = 3,
  col = "black",
  cex = 0.8
)

#---------------------------------------------------------------------------#
# Comparação de todos
# Matriz de supervivencia

all_comparation = matrix(
  c(pH1MC1,   # 1ª classe
    pH1MC2,   # 2ª classe
    pH1MC3),  # 3ª classe
  nrow = 2,
  byrow = FALSE
)

# Nombres de filas y columnas
rownames(all_comparation) = c("Homens 1ª Classe", "Mulheres e Crianças")
colnames(all_comparation) = c("1ª Classe", "2ª Classe", "3ª Classe")

# Gráfico de barras lado a lado
H1MCG = barplot(
  all_comparation,
  beside = TRUE,
  xlab = "Classes",
  ylab = "Taxa de Sobrevivência (%)",
  main = "Comparação da Taxa de Sobrevivência",
  ylim = c(0, 120),
  col = c("lightblue", "black")
)

# Legenda
legend(
  "topright",
  legend = rownames(all_comparation),
  bty = "n",
  fill = c("lightblue", "black")
)

# Añadir porcentajes encima de las barras
for(i in 1:nrow(all_comparation)){
  text(
    x = H1MCG[i, ],              # posiciones X de cada barra de la fila i
    y = all_comparation[i, ],                 # altura de cada barra
    labels = paste0(all_comparation[i, ], "%"),
    pos = 3,                     # 3 = encima de la barra
    col = "black",
    cex = 0.8
  )
}