diff --git a/scripts/plot_wrong_accuracy.py b/scripts/plot_wrong_accuracy.py
new file mode 100644
index 0000000000000000000000000000000000000000..32d84caaf1c1c48475f38fd8ca07380cc0af75b3
--- /dev/null
+++ b/scripts/plot_wrong_accuracy.py
@@ -0,0 +1,71 @@
+#
+# ['gitcommit', 'gitcommitdate', 'hostname', 'ndim', 'kernel_type', 'interp_type', 'tree_height', 'interp_order', 'error']
+# Je souhaite comparer le champ de la colonne 'error' avec le champ 10.0^(1-o) pour o dans la colonne 'interp_order' lorsque la valeur de  'interp_order' est < 12
+#     je souhaite afficher toutes les lignes telsque si comparaison est False alors j'extrais le tuple associé sux colonnes 'ndim', 'kernel_type', 'interp_type', 'tree_height' et pour ce tuple de valeur j'extraie les lignes
+# #
+
+
+
+import pandas as pd
+import numpy as np
+import matplotlib.pyplot as plt
+
+file="scalfmm_accuracy.csv"
+
+df = pd.read_csv(file)
+coeff = 3.0 
+# Calcul de 10^(1 - interp_order)
+df['computed_value'] = coeff*(10.0 ** (1 - df['interp_order']))
+xref=  df['interp_order'].unique()
+yref= 10.0 ** (1 - xref)
+
+# Comparaison: 'error' < 'computed_value' seulement lorsque 'interp_order' < 12
+# et 'interp_order' n'est pas 0 ni 4
+df['comparison'] = np.where(
+    (df['interp_order'] < 12) , #& (~df['interp_type'].isin([0, 4])),  # Comparaison si interp_order < 12 et pas 0 ou 4
+    df['error'] < df['computed_value'],  # Comparaison réelle
+    True  # Si interp_order >= 12 ou 0/4, la comparaison est True
+)
+# Filtrer les lignes où la comparaison est fausse
+df_faux_comparaison = df[~df['comparison']]
+
+# 2. Extraire les tuples uniques ('ndim', 'kernel_type', 'interp_type', 'tree_height') pour lesquels la comparaison est fausse
+tuples_faux = df_faux_comparaison[['ndim', 'kernel_type', 'interp_type', 'tree_height']].drop_duplicates()
+# 3. Créer un DataFrame vide pour stocker toutes les lignes correspondant à ces tuples
+df_resultat = pd.DataFrame(columns=df.columns)
+for _, couple in tuples_faux.iterrows():
+    ndim, kernel, interp, tree = couple['ndim'], couple['kernel_type'], couple['interp_type'], couple['tree_height']
+    
+    # Filtrer les lignes du DataFrame d'origine qui ont ce tuple
+    result = df[(df['ndim'] == ndim) & (df['kernel_type'] == kernel) & 
+                (df['interp_type'] == interp) & (df['tree_height'] == tree)]
+    
+    # Afficher les lignes pour chaque tuple
+    print(f"Résultats pour ndim = {ndim}, kernel_type = {kernel}, interp_type = {interp}, tree_height = {tree}:")
+    # print(result)
+    print("\n" + "="*50 + "\n")
+    # Ajouter les lignes filtrées au DataFrame résultat
+    df_resultat = pd.concat([df_resultat, result])
+
+print(df_resultat.head(30))
+
+# Réinitialiser l'index du DataFrame résultat
+df_resultat.reset_index(drop=True, inplace=True)
+df_resultat.head()
+for d in range(1,4):
+    plt.figure()
+
+    for (ndim, kernel_type, interp_type, tree_height), group in df_resultat.groupby(['ndim', 'kernel_type', 'interp_type', 'tree_height']):
+        if ndim == d:
+            x = group['interp_order']
+            y = group['error']
+            plt.plot(x, y, label=f"{ndim}-{kernel_type}-{interp_type}-{tree_height}")
+            plt.yscale('log')
+
+    plt.plot(xref,yref,'-x')
+    plt.xlabel('Order')
+    plt.ylabel('Relative norm-2 error')
+    plt.title('Error vs. Order')
+    plt.legend()
+    file = 'scalfmm_wrong_accuracy_d='+str(d)+'.pdf'
+    plt.savefig(file, bbox_inches='tight')
\ No newline at end of file