diff --git a/extreme_data/meteo_france_data/scm_models_data/abstract_study.py b/extreme_data/meteo_france_data/scm_models_data/abstract_study.py
index 9d70c864b0aa0cab6fb4aca4fd159f33fc30f133..2dd13ecbe41fa077173baf882bc09f04804b6e33 100644
--- a/extreme_data/meteo_france_data/scm_models_data/abstract_study.py
+++ b/extreme_data/meteo_france_data/scm_models_data/abstract_study.py
@@ -904,7 +904,6 @@ class AbstractStudy(object):
                                                                                                         confidence_interval_based_on_delta_method=confidence_interval_based_on_delta_method)
                 end = time.time()
                 duration = end - start
-                print('Multiprocessing for study duration', duration)
 
                 if -0.5 <= gev_params.shape <= 0.5:
                     massif_name_to_stationary_gev_params[massif_name] = gev_params
diff --git a/extreme_data/meteo_france_data/scm_models_data/visualization/plot_utils.py b/extreme_data/meteo_france_data/scm_models_data/visualization/plot_utils.py
index 33138dcc92535daa308b97d7ea6317dfcf85029f..75e0f2190c702d1e67c56c4911ebf3e736ed5815 100644
--- a/extreme_data/meteo_france_data/scm_models_data/visualization/plot_utils.py
+++ b/extreme_data/meteo_france_data/scm_models_data/visualization/plot_utils.py
@@ -8,7 +8,7 @@ from extreme_data.meteo_france_data.scm_models_data.visualization.create_shifted
 
 
 def plot_against_altitude(x_ticks, ax, massif_id, massif_name, values, altitude=None, fill=False, massif_name_as_labels=True,
-                          elevation_as_xaxis=True):
+                          elevation_as_xaxis=True, legend=False):
     if massif_name_as_labels:
         di = massif_id // 8
         if di == 0:
@@ -29,7 +29,10 @@ def plot_against_altitude(x_ticks, ax, massif_id, massif_name, values, altitude=
         label = '{} m'.format(altitude)
     if not fill:
         args = [x_ticks, values] if elevation_as_xaxis else [values, x_ticks]
-        ax.plot(*args, color=color, linewidth=2, label=label, linestyle=linestyle, marker='o')
+        if legend:
+            ax.plot(*args, color=color, linewidth=2, label=label, linestyle=linestyle)
+        else:
+            ax.plot(*args, color=color, linewidth=2, label=label, linestyle=linestyle, marker='o')
     else:
         assert elevation_as_xaxis, NotImplementedError('todo')
         lower_bound, upper_bound = zip(*values)
diff --git a/projects/altitude_spatial_model/altitudes_fit/main_altitudes_studies.py b/projects/altitude_spatial_model/altitudes_fit/main_altitudes_studies.py
index dae8f4ebbf81ce796cb236c7dc8ab1e2c079f197..12624a003aa827aa57c7f11b7f2a22680354c8e2 100644
--- a/projects/altitude_spatial_model/altitudes_fit/main_altitudes_studies.py
+++ b/projects/altitude_spatial_model/altitudes_fit/main_altitudes_studies.py
@@ -47,6 +47,7 @@ def main():
     fast = False
     if fast is None:
         massif_names = None
+        AbstractExtractEurocodeReturnLevel.NB_BOOTSTRAP = 10
         altitudes_list = altitudes_for_groups[2:3]
     elif fast:
         AbstractExtractEurocodeReturnLevel.NB_BOOTSTRAP = 10
@@ -80,11 +81,11 @@ def main_loop(altitudes_list, massif_names, seasons, study_classes, model_must_p
 
 
 def plot_visualizers(massif_names, visualizer_list):
-    plot_histogram_all_models_against_altitudes(massif_names, visualizer_list)
-    # plot_histogram_all_trends_against_altitudes(massif_names, visualizer_list)
+    # plot_histogram_all_models_against_altitudes(massif_names, visualizer_list)
+    plot_histogram_all_trends_against_altitudes(massif_names, visualizer_list)
     # plot_shoe_plot_ratio_interval_size_against_altitude(massif_names, visualizer_list)
-    # for relative in [True, False]:
-    #     plot_shoe_plot_changes_against_altitude(massif_names, visualizer_list, relative=relative)
+    for relative in [True, False]:
+        plot_shoe_plot_changes_against_altitude(massif_names, visualizer_list, relative=relative)
     # plot_coherence_curves(massif_names, visualizer_list)
     # plot_coherence_curves(['Vanoise'], visualizer_list)
     pass
@@ -96,7 +97,7 @@ def plot_visualizer(massif_names, visualizer):
     # visualizer.studies.plot_maxima_time_series(['Vanoise'])
 
     # Plot the results for the model that minimizes the individual aic
-    # plot_individual_aic(visualizer)
+    plot_individual_aic(visualizer)
 
     # Plot the results for the model that minimizes the total aic
     # plot_total_aic(model_classes, visualizer)
diff --git a/projects/altitude_spatial_model/altitudes_fit/one_fold_analysis/altitudes_studies_visualizer_for_non_stationary_models.py b/projects/altitude_spatial_model/altitudes_fit/one_fold_analysis/altitudes_studies_visualizer_for_non_stationary_models.py
index 2dafde179b117d4815eb58b6ab94de275c8b76b2..28861c40726e2e51e2d32308163cf3167574b538 100644
--- a/projects/altitude_spatial_model/altitudes_fit/one_fold_analysis/altitudes_studies_visualizer_for_non_stationary_models.py
+++ b/projects/altitude_spatial_model/altitudes_fit/one_fold_analysis/altitudes_studies_visualizer_for_non_stationary_models.py
@@ -196,9 +196,9 @@ class AltitudesStudiesVisualizerForNonStationaryModels(StudyVisualizer):
             fontsize_label = 17
         else:
             # cmap = plt.cm.RdYlGn
-            cmap = [plt.cm.coolwarm, plt.cm.bwr, plt.cm.seismic][2]
-            cmap = get_inverse_colormap(cmap)
-            cmap = get_cmap_with_inverted_blue_and_green_channels(cmap)
+            cmap = [plt.cm.coolwarm, plt.cm.bwr, plt.cm.seismic][1]
+            # cmap = get_inverse_colormap(cmap)
+            # cmap = get_cmap_with_inverted_blue_and_green_channels(cmap)
             cmap = remove_the_extreme_colors(cmap)
             graduation = 10
             fontsize_label = 10
diff --git a/projects/altitude_spatial_model/altitudes_fit/one_fold_analysis/plot_total_aic.py b/projects/altitude_spatial_model/altitudes_fit/one_fold_analysis/plot_total_aic.py
index ad0fa2a4e19aa0ec767081f3f1d6fe8431d0a80e..6ebcbd94da8c0a415c5261e94278a751abba583d 100644
--- a/projects/altitude_spatial_model/altitudes_fit/one_fold_analysis/plot_total_aic.py
+++ b/projects/altitude_spatial_model/altitudes_fit/one_fold_analysis/plot_total_aic.py
@@ -14,9 +14,9 @@ from projects.exceeding_snow_loads.utils import dpi_paper1_figure
 
 
 def plots(visualizer: AltitudesStudiesVisualizerForNonStationaryModels):
-    visualizer.plot_shape_map()
-    # visualizer.plot_moments()
-    visualizer.plot_qqplots()
+    # visualizer.plot_shape_map()
+    visualizer.plot_moments()
+    # visualizer.plot_qqplots()
     # for std in [True, False]:
     #     visualizer.studies.plot_mean_maxima_against_altitude(std=std)
 
diff --git a/projects/altitude_spatial_model/altitudes_fit/plots/plot_histogram_altitude_studies.py b/projects/altitude_spatial_model/altitudes_fit/plots/plot_histogram_altitude_studies.py
index 75c3779316a397c4f83c93592d67d9119c6591a9..9a818a6d8ec3e9412fff9ec9976a0173182b0a9f 100644
--- a/projects/altitude_spatial_model/altitudes_fit/plots/plot_histogram_altitude_studies.py
+++ b/projects/altitude_spatial_model/altitudes_fit/plots/plot_histogram_altitude_studies.py
@@ -96,8 +96,8 @@ def plot_histogram_all_trends_against_altitudes(massif_names, visualizer_list: L
     linewidth = 3
     x = np.array([3 * width * (i + 1) for i in range(len(nb_massifs))])
 
-    # colors = ['blue', 'darkblue', 'red', 'darkred']
-    colors = ['red', 'darkred', 'limegreen', 'darkgreen']
+    colors = ['blue', 'darkblue', 'red', 'darkred']
+    # colors = ['red', 'darkred', 'limegreen', 'darkgreen']
     labels = []
     for suffix in ['decrease', 'increase']:
         for prefix in ['Non significant', 'Significant']:
@@ -184,10 +184,13 @@ def plot_shoe_plot_changes_against_altitude(massif_names, visualizer_list: List[
 
     all_changes = [v.all_changes(massif_names, relative=relative) for v in visualizer_list]
     all_changes = list(zip(*all_changes))
-    labels = ['All massifs', 'Massifs with a selected model temporally non-stationary',
-              'Massifs with a selected model temporally non-stationary and significant']
+    labels = ['All massifs', 'Massifs with a selected model\n'
+                             'temporally non-stationary',
+              'Massifs with a selected model\n'
+              'temporally non-stationary and significant']
     # colors = ['darkmagenta', 'darkviolet', 'mediumorchid']
-    colors = ['mediumblue', 'royalblue', 'lightskyblue']
+    # colors = ['mediumblue', 'royalblue', 'lightskyblue']
+    colors = ['darkgreen', 'forestgreen', 'limegreen']
     nb_massifs = [len(v.get_valid_names(massif_names)) for v in visualizer_list]
 
     plt.close()
@@ -216,7 +219,8 @@ def plot_shoe_plot_changes_against_altitude(massif_names, visualizer_list: List[
             patch.set_facecolor(color)
 
     custom_lines = [Line2D([0], [0], color=color, lw=4) for color in colors]
-    ax.legend(custom_lines, labels, prop={'size': 8})
+    loc = 'upper right' if relative else 'upper left'
+    ax.legend(custom_lines, labels, prop={'size': 12}, loc=loc)
 
     start = 'Relative changes' if relative else 'Changes'
     unit = '\%' if relative else visualizer.study.variable_unit
@@ -233,7 +237,7 @@ def plot_shoe_plot_changes_against_altitude(massif_names, visualizer_list: List[
 
     shift = 2 * width
     ax.set_xlim((min(x) - shift, max(x) + shift))
-    upper_limit_for_legend = 0 if relative else 0
+    upper_limit_for_legend = 50 if relative else 0
     lim_down, lim_up = ax.get_ylim()
     ax.set_ylim(lim_down, lim_up + upper_limit_for_legend)
 
diff --git a/projects/altitude_spatial_model/preliminary_analysis.py b/projects/altitude_spatial_model/preliminary_analysis.py
index 44260de4ec39b77d0ed43441799e115cccf6df2b..6c7f578185e2b249cfd1ab48468d5982ab87a848 100644
--- a/projects/altitude_spatial_model/preliminary_analysis.py
+++ b/projects/altitude_spatial_model/preliminary_analysis.py
@@ -25,7 +25,7 @@ class PointwiseGevStudyVisualizer(AltitudesStudies):
         self.altitudes_for_temporal_hypothesis = [600, 1500, 2400, 3300]
 
     def plot_gev_params_against_altitude(self):
-        legend = False
+        legend = True
         elevation_as_xaxis = False
         param_names = GevParams.PARAM_NAMES + [100]
         if legend:
@@ -39,7 +39,7 @@ class PointwiseGevStudyVisualizer(AltitudesStudies):
             for i in range(8):
                 for massif_name in massif_names[i::8]:
                     linear_coef, _, r2 = self._plot_gev_params_against_altitude_one_massif(ax, massif_name, param_name,
-                                                                                           elevation_as_xaxis)
+                                                                                           elevation_as_xaxis, legend=legend)
                     massif_name_to_linear_coef[massif_name] = 100 * linear_coef[0]
                     massif_name_to_r2_score[massif_name] = str(round(r2, 2))
             print(param_name, np.mean([c for c in massif_name_to_linear_coef.values()]))
@@ -115,8 +115,19 @@ class PointwiseGevStudyVisualizer(AltitudesStudies):
             if legend:
                 # ax.legend(labelspacing=2.5, ncol=8, handlelength=12, markerscale=0.7, bbox_to_anchor=(1.05, 1), loc='upper left',
                 #           prop={'size': 2}, fontsize='x-large')
-                ax.legend(labelspacing=2.5, ncol=8, handlelength=10, markerscale=0.7, bbox_to_anchor=(1.05, 1), loc='upper left',
-                          prop={'size': 2}, fontsize='xx-large')
+                # ax.legend(labelspacing=1, ncol=8, handlelength=5, bbox_to_anchor=(1.05, 1), loc='upper left',
+                #           prop={'size': 4}, fontsize='xx-large', columnspacing=0.5)
+                ax.legend(ncol=8, bbox_to_anchor=(1.05, 1), loc='upper left',
+                          prop={'size': 3.5}, handlelength=5, fontsize='xx-large', columnspacing=0.5,
+                          handletextpad=0.5)
+
+                # handles, labels = ax.get_legend_handles_labels()
+                # print(type(handles))
+                # handles = np.array(handles).reshape((3, 8)).transpose().flatten()
+                # labels = np.array(handles).reshape((3, 8)).transpose().flatten()
+                # ax.legend(handles, labels)
+
+
                 plt.gcf().subplots_adjust(right=0.15)
                 ax.set_yticks([])
                 ax.set_ylabel('')
@@ -150,7 +161,7 @@ class PointwiseGevStudyVisualizer(AltitudesStudies):
                                 )
             plt.close()
 
-    def _plot_gev_params_against_altitude_one_massif(self, ax, massif_name, param_name, elevation_as_xaxis):
+    def _plot_gev_params_against_altitude_one_massif(self, ax, massif_name, param_name, elevation_as_xaxis, legend=False):
         altitudes = []
         params = []
         # confidence_intervals = []
@@ -166,7 +177,8 @@ class PointwiseGevStudyVisualizer(AltitudesStudies):
                 params.append(param)
                 # confidence_intervals.append(gev_params.param_name_to_confidence_interval[param_name])
         massif_id = self.study.all_massif_names().index(massif_name)
-        plot_against_altitude(altitudes, ax, massif_id, massif_name, params, fill=False, elevation_as_xaxis=elevation_as_xaxis)
+        plot_against_altitude(altitudes, ax, massif_id, massif_name, params, fill=False, elevation_as_xaxis=elevation_as_xaxis,
+                              legend=legend)
 
         return fit_linear_regression(altitudes, params)
         # plot_against_altitude(altitudes, ax, massif_id, massif_name, confidence_intervals, fill=True)
@@ -294,7 +306,7 @@ if __name__ == '__main__':
     altitudes = list(chain.from_iterable(altitudes_for_groups))
 
     # altitudes = paper_altitudes
-    # altitudes = [1800, 2100]
+    altitudes = [1800, 2100]
     visualizer = PointwiseGevStudyVisualizer(SafranSnowfall1Day, altitudes=altitudes)
     visualizer.plot_gev_params_against_altitude()
     # visualizer.plot_gev_params_against_time_for_all_altitudes()