Gráficos
#---------------------------------------------------------------------------#
crew_sM = sum(df[df$Class == "Crew" & df$Survived == "Yes" & df$Sex == "Female", ]$Freq)
crewM = sum(df[df$Class == "Crew" & df$Sex == "Female", ]$Freq)
crew_sH = sum(df[df$Class == "Crew" & df$Survived == "Yes" & df$Sex == "Male", ]$Freq)
crewH = sum(df[df$Class == "Crew" & df$Sex == "Male", ]$Freq)
pcrewM = round(crew_sM / crewM * 100)
pcrewH = round(crew_sH / crewH * 100)
pcrew_MH = c(pcrewH, pcrewM)
crewHM = barplot(
pcrew_MH,
main = "Percentagem de Sobrevivencia\nda Tripulacao por genero",
ylab = "Percentagem (%)",
col = "lightblue",
ylim = c(0, 100),
names.arg = c("Homens","Mulheres")
)
text(
x = crewHM,
y = pcrew_MH,
labels = paste0(pcrew_MH, "%"),
pos = 3
)

#---------------------------------------------------------------------------#
#---------------------------------------------------------------------------#
crew_s = round(((crew_sM + crew_sH) /crew_abordo)*100)
total_pass_sobre = round((sum(soma_sobrev$Freq) / num_passageiros_non_crew)*100)
pCrew_Pass = c(crew_s, total_pass_sobre)
bp_crew_pass <- barplot(
pCrew_Pass,
names.arg = c("Tripulacao", "Passageiros"),
col = c("red","skyblue"),
ylab = "Percentagem (%)",
main = "Percentagem de sobreviventes: \n Tripulacao vs Passageiros",
ylim = c(0, max(pCrew_Pass)*1.2)
)
#Código para colocar as percentagems
text(
x = bp_crew_pass,
y = pCrew_Pass + 2,
labels = paste0(pCrew_Pass, "%"),
col = "black",
cex = 0.8
)

#---------------------------------------------------------------------------#
#---------------------------------------------------------------------------#
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
)
}
