diff --git a/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/abstract_hypercube_visualizer.py b/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/abstract_hypercube_visualizer.py
index 58f19cbab74fdf81bae4062bf389dc1ec0e53daa..a03e27407f6fba9790614d74786e9ab0549f81ad 100644
--- a/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/abstract_hypercube_visualizer.py
+++ b/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/abstract_hypercube_visualizer.py
@@ -100,7 +100,7 @@ class AbstractHypercubeVisualizer(object):
     def study_title(self):
         return self.study.title
 
-    def show_or_save_to_file(self, specific_title=''):
+    def show_or_save_to_file(self, specific_title='', tight=False):
         if self.save_to_file:
             main_title, *_ = '_'.join(self.study_title.split()).split('/')
             filename = "{}/{}/".format(VERSION_TIME, main_title)
@@ -109,7 +109,10 @@ class AbstractHypercubeVisualizer(object):
             dirname = op.dirname(filepath)
             if not op.exists(dirname):
                 os.makedirs(dirname, exist_ok=True)
-            plt.savefig(filepath)
+            if tight:
+                plt.savefig(filepath, bbox_inches='tight', pad_inches=-0.03)
+            else:
+                plt.savefig(filepath)
         else:
             plt.show()
         plt.close()
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 4d5cbc1ba23002a3925a26c5611577622e09ad4f..3c39ac8d5dc4c74dba8e5388597644465ac0bfad 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
@@ -1,6 +1,7 @@
 import numpy as np
 import pandas as pd
 import matplotlib.pyplot as plt
+from matplotlib.ticker import FormatStrFormatter, ScalarFormatter
 
 from experiment.meteo_france_data.scm_models_data.visualization.hypercube_visualization.abstract_hypercube_visualizer import \
     AbstractHypercubeVisualizer
@@ -14,6 +15,12 @@ ALTITUDES_XLABEL = 'altitudes'
 
 STARTING_YEARS_XLABEL = 'starting years'
 
+from math import log10, floor
+
+
+def round_sig(x, sig=2):
+    return round(x, sig - int(floor(log10(abs(x)))) - 1)
+
 
 def make_patch_spines_invisible(ax):
     ax.set_frame_on(True)
@@ -102,7 +109,8 @@ class AltitudeHypercubeVisualizer(AbstractHypercubeVisualizer):
 
     def visualize_trend_test_evolution(self, reduction_function, xlabel, xlabel_values, axes=None, marker='o',
                                        subtitle='', isin_parameters=None,
-                                       plot_title=None, idx_reduction=None):
+                                       plot_title=None, idx_reduction=None,
+                                       poster_plot=False):
 
         # Plot in one graph several graph that correspond to the same trend_type
         trend_type_to_series = self.trend_type_to_series(reduction_function, isin_parameters)
@@ -153,13 +161,14 @@ class AltitudeHypercubeVisualizer(AbstractHypercubeVisualizer):
                 ax_reversed, color = ax.twinx(), SCM_STUDY_NAME_TO_COLOR[subtitle]
                 ylabel = 'mean logLik for ' + 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)
-                ax_reversed.axvline(x=best_year, color=color, linestyle='--')
+                linewidth = 10 if poster_plot else None
+                ax_reversed.plot(xlabel_values, values, label=ylabel, color=color, linewidth=linewidth)
+                fontsize = 30 if poster_plot else None
+                ax_reversed.set_ylabel(ylabel, color=color, fontsize=fontsize, labelpad=-20)
+                ax_reversed.axvline(x=best_year, color=color, linestyle='--', linewidth=linewidth)
 
                 # Offset the right spine of par2.  The ticks and label have already been
                 # placed on the right by twinx above.
-                factor = SCM_STUDIES_NAMES.index(subtitle)
                 position = 1 + idx_reduction * 0.08
                 if idx_reduction > 0:
                     ax_reversed.spines["right"].set_position(("axes", position))
@@ -169,11 +178,21 @@ class AltitudeHypercubeVisualizer(AbstractHypercubeVisualizer):
                     make_patch_spines_invisible(ax_reversed)
                     # Second, show the right spine.
                     ax_reversed.spines["right"].set_visible(True)
+                if poster_plot:
+                    # ax_reversed.yaxis.set_major_formatter(FormatStrFormatter('%.1f'))
+                    ax_reversed.yaxis.set_major_formatter(ScalarFormatter(useMathText=True))
+                    # ax_reversed.tick_params(axis='both', which='major', labelsize=15)
+                    ax_reversed.tick_params(axis='y', which='major', labelsize=25)
+                    # ax.tick_params(axis='x', which='major', labelsize=20)
+                    ax.tick_params(axis='x', which='major', labelsize=25)
+
+                    ax_reversed.yaxis.set_ticks([np.round(min(values), 1), np.round(max(values), 1)])
             else:
                 ax.set_title(plot_title)
                 # ax.legend()
             # Common things to all the graph
-            ax.set_xlabel(xlabel)
+            if not poster_plot:
+                ax.set_xlabel(xlabel)
             plt.setp(ax.get_yticklabels(), visible=False)
 
         specific_title = self.specific_title_trend_evolution(subtitle, xlabel, loglik_title=len(axes_remaining) > 0)
@@ -190,7 +209,8 @@ class AltitudeHypercubeVisualizer(AbstractHypercubeVisualizer):
         # percents = [np.round(p) for p in percents]
         # specific_title += 'Total ' if xlabel == STARTING_YEARS_XLABEL else 'Mean '
         # specific_title += 'all trend {}, all significative trends: {} (+:{}  -{})'.format(*percents)
-        plt.suptitle(specific_title)
+        if not poster_plot:
+            plt.suptitle(specific_title)
 
         return specific_title, best_year
 
@@ -270,21 +290,25 @@ class AltitudeHypercubeVisualizer(AbstractHypercubeVisualizer):
                 massif_to_value = dict(serie)
                 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)
+        self.study.visualize_study(ax, massif_name_to_color=massif_to_color, show=False,
+                                   show_label=False, scaled=True)
+
+        # ax('scaled')
+        # if plot_title is not None:
+        #     ax.set_title(plot_title)
+        title = self.set_trend_test_reparition_title(subtitle, set=False)
+
         # 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)
 
-        title = self.set_trend_test_reparition_title(subtitle)
-
         return title
 
-    def set_trend_test_reparition_title(self, subtitle):
+    def set_trend_test_reparition_title(self, subtitle, set=True):
         # Global information
         title = 'Repartition of {} trends'.format(subtitle)
         title += ' at altitude={}m for the starting_year={}'.format(self.altitudes[0], self.starting_years[0])
-        plt.suptitle(title)
+        if set:
+            plt.suptitle(title)
         return title
 
     def load_axes_for_trend_test_repartition(self, nb_rows, nb_columns=None):
@@ -311,7 +335,8 @@ class AltitudeHypercubeVisualizer(AbstractHypercubeVisualizer):
     def visualize_year_trend_test(self, axes=None, marker='o', add_detailed_plots=False, plot_title=None,
                                   isin_parameters=None,
                                   show_or_save_to_file=True,
-                                  subtitle_specified=None):
+                                  subtitle_specified=None,
+                                  poster_plot=False):
         if axes is None:
             axes = self.load_trend_test_evolution_axes(self.nb_rows)
         else:
@@ -330,12 +355,14 @@ class AltitudeHypercubeVisualizer(AbstractHypercubeVisualizer):
                 subtitle=subtitle,
                 isin_parameters=isin_parameters,
                 plot_title=plot_title,
-                idx_reduction=idx_reduction
+                idx_reduction=idx_reduction,
+                poster_plot=poster_plot
             )
             results.append((specific_title, best_year, subtitle))
         if show_or_save_to_file:
             last_specific_title = results[-1][0]
-            self.show_or_save_to_file(specific_title=last_specific_title)
+            self.show_or_save_to_file(specific_title=last_specific_title,
+                                      )
         return results
 
     @staticmethod
@@ -397,6 +424,6 @@ class AltitudeHypercubeVisualizer(AbstractHypercubeVisualizer):
                                                                       isin_parameters=isin_parameters,
                                                                       plot_title=plot_title)
         if show_or_save_to_file:
-            self.show_or_save_to_file(specific_title=last_title)
+            self.show_or_save_to_file(specific_title=last_title, tight=True)
 
         return last_title
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
index 8d0bfa7fb9cb07ac3045ee2cce59aba95bd80b40..a4c57959adf59c1339aadc8cb85eb3e48a96525f 100644
--- 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
@@ -44,7 +44,7 @@ def get_fast_quantity_visualizer(quantity_hypercube_class, altitude=1800, study_
 
 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)
+    res = get_fast_quantity_visualizer(QuantityHypercubeWithoutTrend).visualize_year_trend_test(add_detailed_plots=True, poster_plot=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()
@@ -59,8 +59,8 @@ def main_percentage_trend_poster_2():
 
 
 def main_run():
-    # main_mean_log_likelihood_poster_1()
-    main_percentage_trend_poster_2()
+    main_mean_log_likelihood_poster_1()
+    # main_percentage_trend_poster_2()
 
 
 if __name__ == '__main__':
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
index 1c18eba9e3dd5bb00f9539923c4aa83496d7dc14..85bc2eb502602ceb904aa90ae0eb0d1a153324dd 100644
--- 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
@@ -8,7 +8,7 @@ from experiment.meteo_france_data.scm_models_data.visualization.hypercube_visual
 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, altitude_massif_name_and_study_class_for_poster
+    SCM_STUDIES, altitude_massif_name_and_study_class_for_poster, SCM_STUDIES_NAMES, SCM_STUDY_NAME_TO_SCM_STUDY
 from utils import get_display_name_from_object_type
 
 POSTER_ALTITUDES = [900, 1800, 2700]
@@ -37,12 +37,14 @@ def fast_poster():
 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(
+        visualizer = get_full_quantity_visualizer(QuantityHypercubeWithoutTrend, altitude=altitude,
+                                                  study_classes=study_classes)
+        results = visualizer.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():
+        study_name_to_year = dict(zip(visualizer.quantities, [t[1] for t in results]))
+        for study_name, exact_year in study_name_to_year.items():
+            print(study_name, exact_year)
+            study_class = SCM_STUDY_NAME_TO_SCM_STUDY[study_name]
             spatial_visualizer = get_full_altitude_visualizer(AltitudeHypercubeVisualizerBisExtended, [study_class],
                                                               exact_starting_year=exact_year, altitude=altitude)
             spatial_visualizer.visualize_massif_trend_test_one_altitude()
@@ -58,5 +60,5 @@ def example_for_the_starting_years():
 
 
 if __name__ == '__main__':
-    full_poster()
-    # example_for_the_starting_years()
+    # full_poster()
+    example_for_the_starting_years()
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 10999fdb733e05fa9e7bd7c3c4727bd5e10eb7c8..162f32612edf2ca5aa642a3d0fb9b3e54928c2cc 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
@@ -20,6 +20,7 @@ from utils import get_display_name_from_object_type
 
 SCM_STUDIES = [SafranSnowfall, CrocusSwe, CrocusDepth]
 SCM_STUDIES_NAMES = [get_display_name_from_object_type(k) for k in SCM_STUDIES]
+SCM_STUDY_NAME_TO_SCM_STUDY = dict(zip(SCM_STUDIES_NAMES, SCM_STUDIES))
 SCM_STUDY_CLASS_TO_ABBREVIATION = {
     SafranSnowfall: 'SF3',
     CrocusSwe: 'SWE',
@@ -28,7 +29,7 @@ SCM_STUDY_CLASS_TO_ABBREVIATION = {
 
 altitude_massif_name_and_study_class_for_poster = [
     (900, 'Chartreuse', CrocusSwe),
-    (1800, 'Vercors', CrocusDepth),
+    (1800, 'Vanoise', CrocusDepth),
     (2700, 'Parpaillon', SafranSnowfall),
 ]
 
@@ -240,7 +241,8 @@ def max_graph_annual_maxima_poster():
                                                multiprocessing=True)
             snow_abbreviation = SCM_STUDY_CLASS_TO_ABBREVIATION[study_class]
             color = SCM_STUDY_CLASS_TO_COLOR[study_class]
-            study_visualizer.visualize_max_graphs_poster(massif_name, altitude, snow_abbreviation, color)
+            # study_visualizer.visualize_max_graphs_poster(massif_name, altitude, snow_abbreviation, color)
+            study_visualizer.visualize_gev_graphs_poster(massif_name, altitude, snow_abbreviation, color)
 
 
 def altitude_analysis():
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 825fc91b2a2443f1b4ecce0829236781e345fcec..0c60d348b5b350c031ef14c7afa5156858022ba2 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
@@ -602,6 +602,36 @@ class StudyVisualizer(VisualizationParameters):
         self.show_or_save_to_file(add_classic_title=False, no_title=True)
         ax.clear()
 
+    @staticmethod
+    def round_sig(x, sig=2):
+        return round(x, sig - int(math.floor(math.log10(abs(x)))) - 1)
+
+    def visualize_gev_graphs_poster(self, massif_name, altitude, snow_abbreviation, color):
+        massif_names = self.study.study_massif_names
+        # Display the graph of the max on top
+        ax = plt.gca()
+        _, y = self.smooth_maxima_x_y(massif_names.index(massif_name))
+        d = IsmevGevFit(x_gev=y).gev_params
+        # Round up
+        d = {k: self.round_sig(v, 2) for k, v in d.items()}
+
+        print(d)
+        gev_param = GevParams.from_dict(d)
+        x_gev = np.linspace(0.0, 1.5 * max(y), num=1000)
+        y_gev = [gev_param.density(x) for x in x_gev]
+        ax.plot(x_gev, y_gev, color=color, linewidth=5)
+        ax.set_xlabel('y = annual maxima of {} (in {})'.format(snow_abbreviation, self.study.variable_unit), color=color, fontsize=15)
+        ax.set_ylabel('$f_{GEV}' + '(y|\mu={},\sigma={},\zeta={})$'.format(*gev_param.to_array()), fontsize=15)
+        ax.tick_params(axis='both', which='major', labelsize=13)
+
+        # self.visualize_massif_graphs(self.visualize_mean_and_max_graph,
+        #                              specified_massif_ids=specified_massif_ids)
+        plot_name = 'Gev annual maxima of {} in {} at {}m'.format(snow_abbreviation, massif_name, altitude)
+        self.plot_name = plot_name
+        self.show_or_save_to_file(add_classic_title=False, no_title=True)
+        ax.clear()
+
+
     def visualize_mean_and_max_graph(self, ax, massif_id):
         # Display the graph of the max on top
         color_maxima = 'r'
@@ -735,7 +765,9 @@ class StudyVisualizer(VisualizationParameters):
         label_function(full_title)
         ax0.tick_params(axis=u'both', which=u'both', length=0)
 
-    def show_or_save_to_file(self, add_classic_title=True, no_title=False):
+    def show_or_save_to_file(self, add_classic_title=True, no_title=False, tight_layout=False):
+        if tight_layout:
+            plt.tight_layout()
         assert self.plot_name is not None
         if add_classic_title:
             title = self.study.title