diff --git a/experiment/meteo_france_data/scm_models_data/abstract_study.py b/experiment/meteo_france_data/scm_models_data/abstract_study.py
index e856eaf51a16e4af88ac96c4773d637a42222e65..1b1795430033185a70b16450aea65ec529449b0e 100644
--- a/experiment/meteo_france_data/scm_models_data/abstract_study.py
+++ b/experiment/meteo_france_data/scm_models_data/abstract_study.py
@@ -229,14 +229,12 @@ class AbstractStudy(object):
                         label=None, add_text=False, cmap=None, vmax=100, vmin=0,
                         default_color_for_missing_massif='w',
                         default_color_for_nan_values='w',
+                        massif_name_to_color=None,
                         ):
         if ax is None:
             ax = plt.gca()
 
-        if massif_name_to_value is None:
-            massif_name_to_fill_kwargs = None
-            massif_names, values = None, None
-        else:
+        if massif_name_to_color is None:
             massif_names, values = list(zip(*massif_name_to_value.items()))
             if cmap is None:
                 colors = get_color_rbga_shifted(ax, replace_blue_by_white, values, label=label)
@@ -245,8 +243,10 @@ class AbstractStudy(object):
                 create_colorbase_axis(ax, label, cmap, norm)
                 m = cm.ScalarMappable(norm=norm, cmap=cmap)
                 colors = [m.to_rgba(value) if not np.isnan(value) else default_color_for_nan_values for value in values]
-            massif_name_to_fill_kwargs = {massif_name: {'color': color} for massif_name, color in
-                                          zip(massif_names, colors)}
+            massif_name_to_color = zip(massif_names, colors)
+        massif_name_to_fill_kwargs = {massif_name: {'color': color} for massif_name, color in
+                                      massif_name_to_color.items()}
+        massif_names = list(massif_name_to_fill_kwargs.keys())
 
         for coordinate_id, coords_list in cls.idx_to_coords_list.items():
             # Retrieve the list of coords (x,y) that define the contour of the massif of id coordinate_id
@@ -275,6 +275,7 @@ class AbstractStudy(object):
                 # ax.scatter(x, y)
                 # ax.text(x, y, massif_name)
         # Display the center of the massif
+        print(massif_names)
         masssif_coordinate_for_display = cls.massifs_coordinates_for_display(massif_names)
 
         ax.scatter(masssif_coordinate_for_display.x_coordinates,
@@ -295,6 +296,8 @@ class AbstractStudy(object):
         if show:
             plt.show()
 
+        return ax
+
     """ 
     CLASS ATTRIBUTES COMMON TO ALL OBJECTS 
     (written as object attributes/methods for simplicity)
diff --git a/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/altitude_hypercube_visualizer.py b/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/altitude_hypercube_visualizer.py
index 8c1c41ae44eea0aff6a9c99abd78a40f44264702..0923fbe59d0865c87ac4f0422b5db8e4993960bf 100644
--- a/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/altitude_hypercube_visualizer.py
+++ b/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/altitude_hypercube_visualizer.py
@@ -5,7 +5,7 @@ import matplotlib.pyplot as plt
 from experiment.meteo_france_data.scm_models_data.visualization.hypercube_visualization.abstract_hypercube_visualizer import \
     AbstractHypercubeVisualizer
 from experiment.meteo_france_data.scm_models_data.visualization.study_visualization.main_study_visualizer import \
-    SCM_STUDY_NAME_TO_COLOR
+    SCM_STUDY_NAME_TO_COLOR, SCM_STUDY_NAME_TO_ABBREVIATION, SCM_STUDY_CLASS_TO_ABBREVIATION
 from experiment.meteo_france_data.scm_models_data.visualization.study_visualization.study_visualizer import \
     StudyVisualizer
 from experiment.trend_analysis.univariate_test.abstract_univariate_test import AbstractUnivariateTest
@@ -70,7 +70,8 @@ class AltitudeHypercubeVisualizer(AbstractHypercubeVisualizer):
                                                                                                   **kwargs)
 
         if subtitle is None:
-            subtitle = self.study.variable_name[:5]
+            # subtitle = self.study.variable_name[:6]
+            subtitle = SCM_STUDY_CLASS_TO_ABBREVIATION[type(self.study)]
             # Ensure that subtitle does not belong to this dictionary so that the plot will be normal
             assert subtitle not in SCM_STUDY_NAME_TO_COLOR
 
@@ -131,26 +132,33 @@ class AltitudeHypercubeVisualizer(AbstractHypercubeVisualizer):
         axes_remaining = axes[end_idx:]
         ylabel_to_series = self.ylabel_to_series(reduction_function, isin_parameters)
         assert len(axes_remaining) == len(ylabel_to_series), '{}, {}'.format(len(axes_remaining), len(ylabel_to_series))
+        best_year = np.nan
         for ax_idx, (ax, (ylabel, serie)) in enumerate(zip(axes_remaining, ylabel_to_series.items())):
             assert isinstance(serie, pd.Series)
             xlabel_values = list(serie.index)
             values = list(serie.values)
+            argmax_idx = np.argmax(values)
+            best_year = xlabel_values[argmax_idx]
             if plot_title is not None:
-                argmax_idx = np.argmax(values)
-                best_year = xlabel_values[argmax_idx]
                 plot_title += ' (max reached in {})'.format(best_year)
 
             if subtitle in SCM_STUDY_NAME_TO_COLOR:
-                ax, color, ylabel = ax.twinx(), SCM_STUDY_NAME_TO_COLOR[subtitle], subtitle
+                ax_reversed, color = ax.twinx(), SCM_STUDY_NAME_TO_COLOR[subtitle]
+                ylabel = SCM_STUDY_NAME_TO_ABBREVIATION[subtitle]
+                ax.plot([], [], label=ylabel, color=color)
+                ax_reversed.plot(xlabel_values, values, label=ylabel, color=color)
+                ax_reversed.set_ylabel(ylabel, color=color)
             else:
-                color = 'k'
                 ax.set_title(plot_title)
-            ax.plot(xlabel_values, values, label=subtitle, color=color)
-            ax.set_ylabel(ylabel, color=color)
+                ax.legend()
+                ax.set_xlabel(xlabel)
+                plt.setp(ax.get_yticklabels(), visible=False)
 
-        specific_title = 'Evolution of {} trends (significative or not) wrt to the {} with {}'.format(subtitle, xlabel,
-                                                                                                      self.trend_test_name)
+        specific_title = 'Evolution of {} trends wrt to the {} with {}'.format(subtitle, xlabel,
+                                                                               self.trend_test_name)
         specific_title += '\n ' + self.get_title_plot(xlabel)
+        if len(self.altitudes) == 1:
+            specific_title += ' altitude={}'.format(self.altitudes[0])
 
         # Figure title
         # specific_title += '\n'
@@ -166,7 +174,7 @@ class AltitudeHypercubeVisualizer(AbstractHypercubeVisualizer):
         # specific_title += 'all trend {}, all significative trends: {} (+:{}  -{})'.format(*percents)
         plt.suptitle(specific_title)
 
-        return specific_title
+        return specific_title, best_year
 
     def load_trend_test_evolution_axes(self, nb_rows):
         fig, axes = plt.subplots(nb_rows, 1, figsize=self.study_visualizer.figsize, constrained_layout=True)
@@ -216,9 +224,44 @@ class AltitudeHypercubeVisualizer(AbstractHypercubeVisualizer):
 
         return title
 
-    def load_axes_for_trend_test_repartition(self, nb_rows):
-        nb_trend_type = len(self.display_trend_type_to_style)
-        fig, axes = plt.subplots(nb_rows, nb_trend_type, figsize=self.study_visualizer.figsize)
+    def visualize_trend_test_repartition_poster(self, reduction_function, axes=None, subtitle='', isin_parameters=None,
+                                                plot_title=None):
+        ax = axes
+        i = 0
+        trend_type_to_serie = {k: v[i].replace(0.0, np.nan) for k, v in
+                               self.trend_type_to_series(reduction_function, isin_parameters).items()}
+
+        massif_to_color = {}
+        poster_trend_types = [AbstractUnivariateTest.SIGNIFICATIVE_POSITIVE_TREND,
+                              AbstractUnivariateTest.SIGNIFICATIVE_NEGATIVE_TREND,
+                              AbstractUnivariateTest.NON_SIGNIFICATIVE_TREND][:2]
+        for display_trend_type, style in self.display_trend_type_to_style.items():
+            if display_trend_type in poster_trend_types:
+                color = style[:1]
+                serie = trend_type_to_serie[display_trend_type]
+                massif_to_value = dict(serie)
+                print(massif_to_value)
+                massif_to_color.update({k: color for k, v in massif_to_value.items() if not np.isnan(v)})
+
+        self.study.visualize_study(ax, massif_name_to_color=massif_to_color, show=False)
+        if plot_title is not None:
+            ax.set_title(plot_title)
+        # row_title = self.get_title_plot(xlabel='massifs', ax_idx=i)
+        # StudyVisualizer.clean_axes_write_title_on_the_left(axes_row, row_title, left_border=None)
+
+        # Global information
+        title = 'Repartition of {} trends'.format(subtitle)
+        title += ' at altitude={} for the starting_year={}'.format(self.altitudes[0], self.starting_years[0])
+        plt.suptitle(title)
+
+        return title
+
+    def load_axes_for_trend_test_repartition(self, nb_rows, nb_columns=None):
+        if nb_columns is None:
+            nb_columns = len(self.display_trend_type_to_style)
+        fig, axes = plt.subplots(nb_rows, nb_columns, figsize=self.study_visualizer.figsize)
+        if isinstance(axes, np.ndarray):
+            axes = axes.reshape((nb_rows, nb_columns))
         return axes
 
     @property
@@ -242,20 +285,23 @@ class AltitudeHypercubeVisualizer(AbstractHypercubeVisualizer):
         else:
             assert len(axes) == self.nb_rows
 
-        last_result = ''
+        results = []
         for subtitle, reduction_function in self.subtitle_to_reduction_function(self.year_reduction,
                                                                                 add_detailed_plot=add_detailed_plots).items():
-            last_result = self.visualize_trend_test_evolution(reduction_function=reduction_function,
-                                                              xlabel=STARTING_YEARS_XLABEL,
-                                                              xlabel_values=self.starting_years, axes=axes,
-                                                              marker=marker,
-                                                              subtitle=subtitle,
-                                                              isin_parameters=isin_parameters,
-                                                              plot_title=plot_title
-                                                              )
+            specific_title, best_year = self.visualize_trend_test_evolution(
+                reduction_function=reduction_function,
+                xlabel=STARTING_YEARS_XLABEL,
+                xlabel_values=self.starting_years, axes=axes,
+                marker=marker,
+                subtitle=subtitle,
+                isin_parameters=isin_parameters,
+                plot_title=plot_title
+            )
+            results.append((specific_title, best_year, subtitle))
         if show_or_save_to_file:
-            self.show_or_save_to_file(specific_title=last_result)
-        return last_result
+            last_specific_title = results[-1][0]
+            self.show_or_save_to_file(specific_title=last_specific_title)
+        return results
 
     @staticmethod
     def index_reduction(df, level):
@@ -288,7 +334,6 @@ class AltitudeHypercubeVisualizer(AbstractHypercubeVisualizer):
     def visualize_massif_trend_test(self, axes=None, add_detailed_plots=False, plot_title=None,
                                     isin_parameters=None,
                                     show_or_save_to_file=True):
-
         if axes is None:
             axes = self.load_axes_for_trend_test_repartition(self.nb_rows)
         else:
@@ -305,3 +350,18 @@ class AltitudeHypercubeVisualizer(AbstractHypercubeVisualizer):
             self.show_or_save_to_file(specific_title=last_title)
 
         return last_title
+
+    def visualize_massif_trend_test_one_altitude(self, axes=None, add_detailed_plots=False, plot_title=None,
+                                                 isin_parameters=None,
+                                                 show_or_save_to_file=True):
+        last_title = ''
+        for subtitle, reduction_function in self.subtitle_to_reduction_function(self.index_reduction,
+                                                                                level=self.massif_index_level,
+                                                                                add_detailed_plot=add_detailed_plots).items():
+            last_title = self.visualize_trend_test_repartition_poster(reduction_function, axes, subtitle=subtitle,
+                                                                      isin_parameters=isin_parameters,
+                                                                      plot_title=plot_title)
+        if show_or_save_to_file:
+            self.show_or_save_to_file(specific_title=last_title)
+
+        return last_title
diff --git a/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/main_files/__init__.py b/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/main_files/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/main_files/main_fast_hypercube_one_altitudes.py b/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/main_files/main_fast_hypercube_one_altitudes.py
new file mode 100644
index 0000000000000000000000000000000000000000..f44ea7296c9c0a5b63e065c984f0cbddd31af620
--- /dev/null
+++ b/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/main_files/main_fast_hypercube_one_altitudes.py
@@ -0,0 +1,70 @@
+import time
+
+from experiment.meteo_france_data.scm_models_data.safran.safran import SafranSnowfall
+from experiment.meteo_france_data.scm_models_data.visualization.hypercube_visualization.altitude_hypercube_visualizer import \
+    AltitudeHypercubeVisualizer
+from experiment.meteo_france_data.scm_models_data.visualization.hypercube_visualization.altitude_hypercube_visualizer_extended import \
+    AltitudeHypercubeVisualizerBisExtended, QuantityHypercubeWithoutTrendExtended, \
+    AltitudeHypercubeVisualizerWithoutTrendExtended, QuantityHypercubeWithoutTrend
+from experiment.meteo_france_data.scm_models_data.visualization.hypercube_visualization.quantity_altitude_visualizer import \
+    QuantityAltitudeHypercubeVisualizer
+from experiment.meteo_france_data.scm_models_data.visualization.hypercube_visualization.utils_hypercube import \
+    load_altitude_visualizer, load_quantity_visualizer
+from experiment.meteo_france_data.scm_models_data.visualization.study_visualization.main_study_visualizer import \
+    ALL_ALTITUDES, SCM_STUDIES
+from experiment.trend_analysis.univariate_test.abstract_gev_change_point_test import GevLocationChangePointTest
+
+
+def get_fast_parameters(altitude=1800):
+    save_to_file = False
+    only_first_one = False
+    nb_data_reduced_for_speed = 4
+    altitudes = [altitude]
+    last_starting_year = None
+    trend_test_class = GevLocationChangePointTest
+    return altitudes, last_starting_year, nb_data_reduced_for_speed, only_first_one, save_to_file, trend_test_class
+
+
+def get_fast_altitude_visualizer(altitude_hypercube_class, altitude=1800, study_class=SafranSnowfall, exact_year=None):
+    altitudes, last_starting_year, nb_data_reduced_for_speed, only_first_one, save_to_file, trend_test_class = get_fast_parameters(altitude=altitude)
+    visualizer = load_altitude_visualizer(altitude_hypercube_class, altitudes, last_starting_year,
+                                          nb_data_reduced_for_speed, only_first_one, save_to_file, [study_class],
+                                          trend_test_class, exact_starting_year=exact_year)
+    return visualizer
+
+
+def get_fast_quantity_visualizer(quantity_hypercube_class, altitude=1800, study_classes=None):
+    altitudes, last_starting_year, nb_data_reduced_for_speed, only_first_one, save_to_file, trend_test_class = get_fast_parameters(altitude=altitude)
+    if study_classes is None:
+        study_classes = SCM_STUDIES[:2]
+    visualizer = load_quantity_visualizer(quantity_hypercube_class, altitudes, last_starting_year, nb_data_reduced_for_speed, only_first_one,
+                                          save_to_file, study_classes, trend_test_class)
+    return visualizer
+
+
+def main_mean_log_likelihood_poster_1():
+    # Simply the main graph
+    res = get_fast_quantity_visualizer(QuantityHypercubeWithoutTrend).visualize_year_trend_test(add_detailed_plots=True)
+    # get_fast_quantity_visualizer(QuantityHypercubeWithoutTrendExtended).vsualize_year_trend_by_regions_and_altitudes(
+    #     add_detailed_plot=True)
+    # get_fast_altitude_visualizer(AltitudeHypercubeVisualizerWithoutTrendExtended).vsualize_year_trend_by_regions_and_altitudes()
+
+
+def main_percentage_trend_poster_2():
+    visualizer = get_fast_altitude_visualizer(AltitudeHypercubeVisualizerBisExtended, exact_year=1958)
+    # visualizer.vsualize_year_trend_by_regions_and_altitudes()
+    # visualizer.visualize_massif_trend_test_by_altitudes()
+    visualizer.visualize_massif_trend_test_one_altitude()
+    # visualizer.visualize_altitute_trend_test_by_regions()
+
+
+def main_run():
+    main_mean_log_likelihood_poster_1()
+    # main_percentage_trend_poster_2()
+
+
+if __name__ == '__main__':
+    start = time.time()
+    main_run()
+    duration = time.time() - start
+    print('Full run took {}s'.format(round(duration, 1)))
diff --git a/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/main_fast_hypercube.py b/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/main_files/main_fast_hypercube_several_altitudes.py
similarity index 95%
rename from experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/main_fast_hypercube.py
rename to experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/main_files/main_fast_hypercube_several_altitudes.py
index d93208c9b1e75385e0df22d4e5d3f4f15a360859..5b2a3fcf74f596051e4c7f30532a7628c413a314 100644
--- a/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/main_fast_hypercube.py
+++ b/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/main_files/main_fast_hypercube_several_altitudes.py
@@ -14,11 +14,14 @@ from experiment.meteo_france_data.scm_models_data.visualization.study_visualizat
 from experiment.trend_analysis.univariate_test.abstract_gev_change_point_test import GevLocationChangePointTest
 
 
-def get_fast_parameters():
+def get_fast_parameters(altitude=None):
     save_to_file = False
     only_first_one = False
     nb_data_reduced_for_speed = 4
-    altitudes = [ALL_ALTITUDES[3], ALL_ALTITUDES[-7]]
+    if altitude is not None:
+        altitudes = [altitude]
+    else:
+        altitudes = [ALL_ALTITUDES[3], ALL_ALTITUDES[-7]]
     last_starting_year = None
     trend_test_class = GevLocationChangePointTest
     return altitudes, last_starting_year, nb_data_reduced_for_speed, only_first_one, save_to_file, trend_test_class
diff --git a/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/main_full_hypercube.py b/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/main_files/main_full_hypercube.py
similarity index 89%
rename from experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/main_full_hypercube.py
rename to experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/main_files/main_full_hypercube.py
index 88160f9ef5e88558dfc5375129929eafe3900935..22ae39ca41e62fd40fd9c3507ac82611d0f99e8f 100644
--- a/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/main_full_hypercube.py
+++ b/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/main_files/main_full_hypercube.py
@@ -14,18 +14,21 @@ from experiment.meteo_france_data.scm_models_data.visualization.study_visualizat
 from experiment.trend_analysis.univariate_test.abstract_gev_change_point_test import GevLocationChangePointTest
 
 
-def get_full_parameters():
+def get_full_parameters(altitude=None):
     save_to_file = True
     only_first_one = False
     nb_data_reduced_for_speed = False
-    altitudes = ALL_ALTITUDES[3:-6]
+    if altitude is not None:
+        altitudes = [altitude]
+    else:
+        altitudes = ALL_ALTITUDES[3:-6]
     last_starting_year = 2007
     trend_test_class = GevLocationChangePointTest
     return altitudes, last_starting_year, nb_data_reduced_for_speed, only_first_one, save_to_file, trend_test_class
 
 
-def get_full_altitude_visualizer(altitude_hypercube_class, study_classes, exact_starting_year=None):
-    altitudes, last_starting_year, nb_data_reduced_for_speed, only_first_one, save_to_file, trend_test_class = get_full_parameters()
+def get_full_altitude_visualizer(altitude_hypercube_class, study_classes, exact_starting_year=None, altitude=None):
+    altitudes, last_starting_year, nb_data_reduced_for_speed, only_first_one, save_to_file, trend_test_class = get_full_parameters(altitude=altitude)
     if exact_starting_year is not None:
         last_starting_year = None
     visualizer = load_altitude_visualizer(altitude_hypercube_class, altitudes, last_starting_year,
@@ -34,9 +37,10 @@ def get_full_altitude_visualizer(altitude_hypercube_class, study_classes, exact_
     return visualizer
 
 
-def get_full_quantity_visualizer(quantity_hypercube_class):
-    altitudes, last_starting_year, nb_data_reduced_for_speed, only_first_one, save_to_file, trend_test_class = get_full_parameters()
-    study_classes = SCM_STUDIES[:3]
+def get_full_quantity_visualizer(quantity_hypercube_class, altitude=None, study_classes=None):
+    altitudes, last_starting_year, nb_data_reduced_for_speed, only_first_one, save_to_file, trend_test_class = get_full_parameters(altitude=altitude)
+    if study_classes is None:
+        study_classes = SCM_STUDIES[:3]
     visualizer = load_quantity_visualizer(quantity_hypercube_class, altitudes, last_starting_year,
                                           nb_data_reduced_for_speed, only_first_one,
                                           save_to_file, study_classes, trend_test_class)
diff --git a/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/main_files/main_poster.py b/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/main_files/main_poster.py
new file mode 100644
index 0000000000000000000000000000000000000000..47fff2ff7f36f617e2df2cb3c7e951ea7d1e3690
--- /dev/null
+++ b/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/main_files/main_poster.py
@@ -0,0 +1,47 @@
+from experiment.meteo_france_data.scm_models_data.visualization.hypercube_visualization.altitude_hypercube_visualizer_extended import \
+    QuantityHypercubeWithoutTrend, AltitudeHypercubeVisualizerBisExtended
+from experiment.meteo_france_data.scm_models_data.visualization.hypercube_visualization.main_files.main_fast_hypercube_one_altitudes import \
+    get_fast_parameters, get_fast_quantity_visualizer
+from experiment.meteo_france_data.scm_models_data.visualization.hypercube_visualization.main_files.main_full_hypercube import \
+    get_full_quantity_visualizer, get_full_altitude_visualizer
+from experiment.meteo_france_data.scm_models_data.visualization.hypercube_visualization.utils_hypercube import \
+    load_altitude_visualizer
+from experiment.meteo_france_data.scm_models_data.visualization.study_visualization.main_study_visualizer import \
+    SCM_STUDIES
+
+POSTER_ALTITUDES = [900, 1800, 2700]
+
+
+def fast_poster():
+    for altitude in POSTER_ALTITUDES[:1]:
+        study_classes = SCM_STUDIES[:2]
+        results = get_fast_quantity_visualizer(QuantityHypercubeWithoutTrend,
+                                               altitude=altitude,
+                                               study_classes=study_classes).visualize_year_trend_test(add_detailed_plots=True)
+        study_class_to_year = dict(zip(study_classes, [t[1] for t in results]))
+        for study_class, exact_year in study_class_to_year.items():
+            altitudes, last_starting_year, nb_data_reduced_for_speed, only_first_one, save_to_file, trend_test_class = get_fast_parameters(
+                altitude=altitude)
+            spatial_visualizer = load_altitude_visualizer(AltitudeHypercubeVisualizerBisExtended, altitudes,
+                                                          last_starting_year,
+                                                          nb_data_reduced_for_speed, only_first_one, save_to_file,
+                                                          [study_class],
+                                                          trend_test_class,
+                                                          exact_starting_year=exact_year)
+            spatial_visualizer.visualize_massif_trend_test_one_altitude()
+
+
+def full_poster():
+    for altitude in POSTER_ALTITUDES[:]:
+        study_classes = SCM_STUDIES[:]
+        results = get_full_quantity_visualizer(QuantityHypercubeWithoutTrend,
+                                               altitude=altitude,
+                                               study_classes=study_classes).visualize_year_trend_test(add_detailed_plots=True)
+        study_class_to_year = dict(zip(study_classes, [t[1] for t in results]))
+        for study_class, exact_year in study_class_to_year.items():
+            spatial_visualizer = get_full_altitude_visualizer(AltitudeHypercubeVisualizerBisExtended, [study_class], exact_starting_year=exact_year, altitude=altitude)
+            spatial_visualizer.visualize_massif_trend_test_one_altitude()
+
+
+if __name__ == '__main__':
+    full_poster()
diff --git a/experiment/meteo_france_data/scm_models_data/visualization/study_visualization/main_study_visualizer.py b/experiment/meteo_france_data/scm_models_data/visualization/study_visualization/main_study_visualizer.py
index e37f169dd14068eec27b43f79187c6f34e0e872c..7aa2bc04dde9a5ca128dbf6704398d4373627ce9 100644
--- a/experiment/meteo_france_data/scm_models_data/visualization/study_visualization/main_study_visualizer.py
+++ b/experiment/meteo_france_data/scm_models_data/visualization/study_visualization/main_study_visualizer.py
@@ -18,12 +18,20 @@ from spatio_temporal_dataset.coordinates.transformed_coordinates.transformation.
 from utils import get_display_name_from_object_type
 
 SCM_STUDIES = [SafranSnowfall, CrocusSwe, CrocusDepth]
+SCM_STUDY_CLASS_TO_ABBREVIATION = {
+    SafranSnowfall: 'SF3',
+    CrocusSwe: 'SWE',
+    CrocusDepth: 'SD',
+}
+SCM_STUDY_NAME_TO_ABBREVIATION = {get_display_name_from_object_type(k): v for k, v in SCM_STUDY_CLASS_TO_ABBREVIATION.items()}
 SCM_STUDY_NAME_TO_COLOR = {get_display_name_from_object_type(s): color
-                           for s, color in zip(SCM_STUDIES, ['r', 'b', 'g'])}
+                           for s, color in zip(SCM_STUDIES, ['tab:orange', 'y', 'tab:purple'])}
+
 SCM_EXTENDED_STUDIES = [ExtendedSafranSnowfall, ExtendedCrocusSwe, ExtendedCrocusDepth]
 SCM_STUDY_TO_EXTENDED_STUDY = OrderedDict(zip(SCM_STUDIES, SCM_EXTENDED_STUDIES))
 
 ALL_ALTITUDES = [0, 300, 600, 900, 1200, 1500, 1800, 2100, 2400, 2700, 3000, 3300, 3600, 3900, 4200, 4500, 4800]
+ALTITUDES_LOW_MIDDLE_HIGH = [900, 1800, 2700]
 ALL_ALTITUDES_WITHOUT_NAN = [300, 600, 900, 1200, 1500, 1800, 2100, 2400, 2700, 3000, 3300, 3600, 3900, 4200, 4500, 4800]
 full_altitude_with_at_least_2_stations = [0, 300, 600, 900, 1200, 1500, 1800, 2100, 2400, 2700, 3000, 3300, 3600, 3900,
                                           4200]
diff --git a/experiment/meteo_france_data/scm_models_data/visualization/study_visualization/study_visualizer.py b/experiment/meteo_france_data/scm_models_data/visualization/study_visualization/study_visualizer.py
index 3eef090005d5a469d9630563cb943eb1308d76b3..17e181c2109e7b96a4e0858bf3ed6383f854ed0b 100644
--- a/experiment/meteo_france_data/scm_models_data/visualization/study_visualization/study_visualizer.py
+++ b/experiment/meteo_france_data/scm_models_data/visualization/study_visualization/study_visualizer.py
@@ -399,17 +399,21 @@ class StudyVisualizer(VisualizationParameters):
 
     def massif_name_to_gev_change_point_test_results(self, trend_test_class_for_change_point_test,
                                                      starting_years_for_change_point_test,
-                                                     nb_massif_for_change_point_test=None):
+                                                     nb_massif_for_change_point_test=None,
+                                                     sample_one_massif_from_each_region=True):
         if self.trend_test_class_for_change_point_test is None:
             # Set the attribute is not already done
             self.trend_test_class_for_change_point_test = trend_test_class_for_change_point_test
             self.starting_years_for_change_point_test = starting_years_for_change_point_test
             self.nb_massif_for_change_point_test = nb_massif_for_change_point_test
+            self.sample_one_massif_from_each_region = sample_one_massif_from_each_region
         else:
             # Check that the argument are the same
             assert self.trend_test_class_for_change_point_test == trend_test_class_for_change_point_test
             assert self.starting_years == starting_years_for_change_point_test
             assert self.nb_massif_for_change_point_test == nb_massif_for_change_point_test
+            assert self.sample_one_massif_from_each_region == sample_one_massif_from_each_region
+
         return self._massif_name_to_gev_change_point_test_results
 
     @cached_property
@@ -417,7 +421,7 @@ class StudyVisualizer(VisualizationParameters):
         massif_name_to_gev_change_point_test_results = {}
         if self.nb_massif_for_change_point_test is None:
             massif_names = self.study.study_massif_names
-        else:
+        elif self.sample_one_massif_from_each_region:
             # Get one massif from each region to ensure that the fast plot will not crash
             assert self.nb_massif_for_change_point_test >= 4, 'we need at least one massif from each region'
             massif_names = [AbstractExtendedStudy.region_name_to_massif_names[r][0]
@@ -425,6 +429,9 @@ class StudyVisualizer(VisualizationParameters):
             massif_names_for_sampling = list(set(self.study.study_massif_names) - set(massif_names))
             nb_massif_for_sampling = self.nb_massif_for_change_point_test - len(AbstractExtendedStudy.real_region_names)
             massif_names += sample(massif_names_for_sampling, k=nb_massif_for_sampling)
+        else:
+            massif_names = sample(self.study.study_massif_names, k=self.nb_massif_for_change_point_test)
+
 
         for massif_id, massif_name in enumerate(massif_names):
             years, smooth_maxima = self.smooth_maxima_x_y(massif_id)
@@ -437,7 +444,8 @@ class StudyVisualizer(VisualizationParameters):
 
     def df_trend_spatio_temporal(self, trend_test_class_for_change_point_test,
                                  starting_years_for_change_point_test,
-                                 nb_massif_for_change_point_test=None):
+                                 nb_massif_for_change_point_test=None,
+                                 sample_one_massif_from_each_region=True):
         """
         Index are the massif
         Columns are the starting year
@@ -450,7 +458,8 @@ class StudyVisualizer(VisualizationParameters):
         massif_name_to_gev_change_point_test_results = self.massif_name_to_gev_change_point_test_results(
             trend_test_class_for_change_point_test,
             starting_years_for_change_point_test,
-            nb_massif_for_change_point_test)
+            nb_massif_for_change_point_test,
+        sample_one_massif_from_each_region)
         for massif_name, gev_change_point_test_results in massif_name_to_gev_change_point_test_results.items():
             trend_test_res, best_idxs = gev_change_point_test_results
             trend_test_res = [(a, b, c) if i in best_idxs else (np.nan, np.nan, c)
diff --git a/experiment/trend_analysis/univariate_test/abstract_univariate_test.py b/experiment/trend_analysis/univariate_test/abstract_univariate_test.py
index 35b71dba8579c5c1afe88c6a9e9c1c3c6c198d46..252270646e03cb8c3eeed6c27255125e25b3580d 100644
--- a/experiment/trend_analysis/univariate_test/abstract_univariate_test.py
+++ b/experiment/trend_analysis/univariate_test/abstract_univariate_test.py
@@ -58,7 +58,7 @@ class AbstractUnivariateTest(object):
         d = OrderedDict()
         # d[cls.POSITIVE_TREND] = 'g--'
         # d[cls.NEGATIVE_TREND] = 'r--'
-        d[cls.ALL_TREND] = 'k-'
+        # d[cls.ALL_TREND] = 'k-'
         d[cls.NON_SIGNIFICATIVE_TREND] = 'b-'
         # d[cls.SIGNIFICATIVE_ALL_TREND] = 'k-'
         d[cls.SIGNIFICATIVE_POSITIVE_TREND] = 'g-'
diff --git a/test/test_experiment/test_SCM_study.py b/test/test_experiment/test_SCM_study.py
index c039d98c5badc858cacc8725b575c44cb50cacf5..395e5c2fedc0dc3df23dcd2ca695bda09ef4471f 100644
--- a/test/test_experiment/test_SCM_study.py
+++ b/test/test_experiment/test_SCM_study.py
@@ -22,7 +22,8 @@ class TestSCMAllStudy(unittest.TestCase):
         for study_class in [ExtendedSafranSnowfall]:
             for study in study_iterator(study_class, only_first_one=True, verbose=False):
                 study_visualizer = StudyVisualizer(study, show=False, save_to_file=False, multiprocessing=True)
-                study_visualizer.df_trend_spatio_temporal(GevLocationChangePointTest, [1958, 1959, 1960], nb_massif_for_change_point_test=3)
+                study_visualizer.df_trend_spatio_temporal(GevLocationChangePointTest, [1958, 1959, 1960], nb_massif_for_change_point_test=3,
+                                                          sample_one_massif_from_each_region=False)
         self.assertTrue(True)
 
     def test_instantiate_studies(self):
diff --git a/test/test_experiment/test_hypercube.py b/test/test_experiment/test_hypercube.py
index 117fe8a3db2cacfa7d859c62295cd66e04c9e229..3609c59c47b70f20dac9b54bce9cc22791e68b59 100644
--- a/test/test_experiment/test_hypercube.py
+++ b/test/test_experiment/test_hypercube.py
@@ -28,7 +28,7 @@ class TestHypercube(unittest.TestCase):
                                                    altitudes=altitudes, verbose=self.DISPLAY)]
         self.altitude_to_visualizer = OrderedDict(zip(altitudes, visualizers))
         self.trend_test_class = GevLocationChangePointTest
-        self.nb_data_reduced_for_speed = 2
+        self.nb_data_reduced_for_speed = 4
 
     # def test_altitude_hypercube_visualizer(self):
     #     visualizer = AltitudeHypercubeVisualizer(self.altitude_to_visualizer, save_to_file=False,