C Fonctions utiles

C.1 Graphiques pour l’analyse factorielle

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
      
}