graphCA <- function(obj_CA, texte_ligne = TRUE, texte_col = TRUE, interactif = TRUE, dim1 = 1, dim2 = 2){
# Entrée:
# Objet_CA: un objet créé avec la fonction CA de FactoMineR
# text_ligne et text_col: TRUE si vous voulez afficher les modalités des lignes
# interactif: TRUE si vous voulez un graphique interactif (requière ggplotly) et FALSE si non (requière ggplot2)
# Coordonnées des lignes et des colonnes
coord_ligne <- data.frame(obj_CA$row$coord) %>%
rownames_to_column(var = 'Ligne')
coord_col <- as.data.frame(obj_CA$col$coord) %>%
rownames_to_column(var = 'Colonne')
# Qualité de la représentation des lignes et des colonnes
Qualite_ligne <- round(obj_CA$row$cos2[,dim1] + obj_CA$row$cos2[,dim2],2)
Qualite_colonne <- round(obj_CA$col$cos2[,dim1] + obj_CA$col$cos2[,dim2],2)
# Graphique des lignes
g_ligne <- ggplot() +
geom_point(data = coord_ligne,
aes(coord_ligne[,dim1+1], coord_ligne[,dim2+1], label = Ligne, alpha = Qualite_ligne), color = '#bb3e3b') +
xlab(paste('Dimension', dim1)) +
ylab(paste('Dimension', dim2)) +
theme_minimal()
if (texte_ligne) {
g_ligne <- g_ligne +
geom_text(data = coord_ligne,
aes(coord_ligne[,dim1+1], coord_ligne[,dim2+1], label = Ligne) , color = '#bb3e3b' ,hjust = 0.5, vjust = -0.5)
}
g_col_ligne <- g_ligne +
geom_point(data = coord_col,
aes(coord_col[,dim1+1], coord_col[,dim2+1], label = Colonne, alpha = Qualite_colonne))
if (texte_col) {
g_col_ligne <- g_col_ligne +
geom_text(data = coord_col,
aes(coord_col[,dim1+1], coord_col[,dim2+1], label = Colonne) ,hjust=0.5, vjust=-0.5)
}
if(interactif) {
ggplotly(g_col_ligne, tooltip = c('Ligne','Colonne','Qualite_ligne','Qualite_colonne'))
} else g_col_ligne
}