diff --git a/src/main/java/fr/univlille/sae/classification/model/LoadableData.java b/src/main/java/fr/univlille/sae/classification/model/LoadableData.java
index 6c322d67bb5572e74277def6dc77bee10d57ef56..670de56e73a5d89c5793525fd64709cc165ad66d 100644
--- a/src/main/java/fr/univlille/sae/classification/model/LoadableData.java
+++ b/src/main/java/fr/univlille/sae/classification/model/LoadableData.java
@@ -4,6 +4,9 @@ import javafx.scene.paint.Color;
 
 import java.util.Map;
 import java.util.HashMap;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
 import java.util.Set;
 
 /**
@@ -19,6 +22,7 @@ public abstract class LoadableData {
      * Constructeur par défaut.
      */
     protected LoadableData() {
+
     }
 
     /**
@@ -45,8 +49,30 @@ public abstract class LoadableData {
      */
     public static void setClassificationTypes(Set<String> classificationTypes) {
         LoadableData.classificationTypes = classificationTypes;
+        LoadableData.classification.clear();
+
+        int nb = 0;
+        for(String s : classificationTypes) {
+            // Génération de couleurs avec une plage évitant le blanc
+
+            LoadableData.classification.put(s, getColor(nb++));
+        }
+
+        LoadableData.classification.put("undefined", getColor(nb));
+    }
+
+    private static Color getColor(int i) {
+        double ratio = (double) i / classificationTypes.size();
+
+        // Réduire les composantes pour éviter les tons clairs
+        double red = 0.2 + 0.6 * ratio; // Entre 0.2 et 0.8
+        double green = 0.8 - 0.6 * ratio; // Entre 0.8 et 0.2
+        double blue = 0.5 + 0.3 * Math.sin(ratio * Math.PI); // Entre 0.5 et 0.8
+
+        return Color.color(red, green, blue);
     }
 
+
     /**
      * Définit la classification de l'objet.
      * @param classification classification à définir.
@@ -57,9 +83,6 @@ public abstract class LoadableData {
 
 
 
-
-
-
     public abstract double[] getAttributes();
 
     public abstract String[] getStringAttributes();
diff --git a/src/main/java/fr/univlille/sae/classification/model/Pokemon.java b/src/main/java/fr/univlille/sae/classification/model/Pokemon.java
index 804e95e151d88e1a59fbb6ccc5cab3d618e94e7f..5a251f7d2e1328a5cf0490bf3bd6c708c9503bd7 100644
--- a/src/main/java/fr/univlille/sae/classification/model/Pokemon.java
+++ b/src/main/java/fr/univlille/sae/classification/model/Pokemon.java
@@ -1,13 +1,11 @@
 package fr.univlille.sae.classification.model;
 
 import com.opencsv.bean.CsvBindByName;
-import javafx.scene.paint.Color;
-
 import java.util.HashMap;
 import java.util.LinkedHashMap;
 import java.util.Map;
 
-public class Pokemon extends LoadableData {
+public class Pokemon extends LoadableData{
 
     // name,attack,base_egg_steps,capture_rate,defense,experience_growth,hp,sp_attack,sp_defense,type1,type2,speed,is_legendary
     // Swablu,40,5120,255.0,60,600000,45,75,50,normal,flying,1.2,False
@@ -116,6 +114,7 @@ public class Pokemon extends LoadableData {
 
 
 
+
     @Override
     public double[] getAttributes() {
         return new double[]{attack, baseEggSteps, captureRate, defense,