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 872431d2e1e9e1e50bc57647ab4769ef8ee9e440..cd477e1283b8b39c293c388295dd2eee4a201d45 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,6 @@
-import matplotlib.pyplot as plt
 import numpy as np
 import pandas as pd
+import matplotlib.pyplot as plt
 
 from experiment.meteo_france_data.scm_models_data.visualization.hypercube_visualization.abstract_hypercube_visualizer import \
     AbstractHypercubeVisualizer
@@ -31,13 +31,19 @@ class AltitudeHypercubeVisualizer(AbstractHypercubeVisualizer):
     def nb_rows(self):
         return 1
 
+    def ylabel_to_series(self, reduction_function, isin_parameters=None):
+        return {}
+
     def trend_type_to_series(self, reduction_function, isin_parameters=None):
         # Map each trend type to its serie with percentages
         # Define here all the trend type we might need in the results/displays
-        trend_types_to_process = list(self.display_trend_types) + [AbstractUnivariateTest.SIGNIFICATIVE_ALL_TREND]
         return {trend_type: self.trend_type_reduction_series(reduction_function=reduction_function,
                                                              df_bool=self.df_bool(trend_type, isin_parameters).copy())
-                for trend_type in trend_types_to_process}
+                for trend_type in self.trend_types_to_process}
+
+    @property
+    def trend_types_to_process(self):
+        return list(self.display_trend_types) + [AbstractUnivariateTest.SIGNIFICATIVE_ALL_TREND]
 
     def df_bool(self, display_trend_type, isin_parameters=None):
         return self.df_hypercube_trend_type.isin(AbstractUnivariateTest.get_real_trend_types(display_trend_type))
@@ -90,14 +96,17 @@ class AltitudeHypercubeVisualizer(AbstractHypercubeVisualizer):
         else:
             assert len(axes) == self.nb_rows
 
+        # 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)
-        for ax_idx, ax in enumerate(axes):
+        end_idx = len(list(trend_type_to_series.values())[0])
+        axes_for_trend_type = axes[:end_idx]
+        for ax_idx, ax in enumerate(axes_for_trend_type):
             for display_trend_type in self.display_trend_types:
                 style = self.display_trend_type_to_style[display_trend_type]
-                percentages_values = trend_type_to_series[display_trend_type][ax_idx]
-                xlabel_values = list(percentages_values.index)
-                percentages_values = list(percentages_values.values)
-                ax.plot(xlabel_values, percentages_values, style + marker, label=display_trend_type)
+                values = trend_type_to_series[display_trend_type][ax_idx]
+                xlabel_values = list(values.index)
+                values = list(values.values)
+                ax.plot(xlabel_values, values, style + marker, label=display_trend_type)
 
             if ax_idx == 0:
                 # Global information
@@ -118,6 +127,17 @@ class AltitudeHypercubeVisualizer(AbstractHypercubeVisualizer):
             if plot_title is not None:
                 ax.set_title(plot_title)
 
+        # Plot other graphs where there is a single line that do not correspond to trend types
+        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))
+        for ax_idx, (ax, (ylabel, serie)) in enumerate(zip(axes_remaining, ylabel_to_series.items())):
+            xlabel_values = list(serie.index)
+            values = list(serie.values)
+            ax.plot(xlabel_values, values)
+            ax.set_ylabel(ylabel)
+            ax.set_title(plot_title)
+
         specific_title = 'Evolution of {} trends (significative or not) wrt to the {} with {}'.format(subtitle, xlabel,
                                                                                                       self.trend_test_name)
         specific_title += '\n ' + self.get_title_plot(xlabel)
@@ -142,20 +162,19 @@ class AltitudeHypercubeVisualizer(AbstractHypercubeVisualizer):
         return specific_title
 
     def load_trend_test_evolution_axes(self, nb_rows):
-        fig, axes = plt.subplots(nb_rows, 1, figsize=self.study_visualizer.figsize)
+        fig, axes = plt.subplots(nb_rows, 1, figsize=self.study_visualizer.figsize, constrained_layout=True)
         if not isinstance(axes, np.ndarray):
             axes = [axes]
         return axes
 
     def load_trend_test_evolution_axes_with_columns(self, nb_rows, nb_columns):
-        fig, axes = plt.subplots(nb_rows, nb_columns, figsize=self.study_visualizer.figsize)
+        fig, axes = plt.subplots(nb_rows, nb_columns, figsize=self.study_visualizer.figsize, constrained_layout=True)
         if not isinstance(axes, np.ndarray):
             axes = [axes]
         else:
             axes = axes.reshape((nb_rows * nb_columns))
         return axes
 
-
     def visualize_trend_test_repartition(self, reduction_function, axes=None, subtitle='', isin_parameters=None,
                                          show_or_save_to_file=True, plot_title=None):
         if axes is None:
@@ -198,7 +217,8 @@ class AltitudeHypercubeVisualizer(AbstractHypercubeVisualizer):
 
     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)
+        fig, axes = plt.subplots(nb_rows, nb_trend_type, figsize=self.study_visualizer.figsize,
+                                 constrained_layout=True)
         return axes
 
     @property
diff --git a/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/altitude_hypercube_visualizer_extended.py b/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/altitude_hypercube_visualizer_extended.py
index c0ac2f7f4e4ebcff06df7b156c17a0a49eae57b2..13877ca4363139e3adfa54d962dbddf942187053 100644
--- a/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/altitude_hypercube_visualizer_extended.py
+++ b/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/altitude_hypercube_visualizer_extended.py
@@ -4,7 +4,7 @@ from experiment.meteo_france_data.scm_models_data.visualization.hypercube_visual
 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_year_hypercube_visualizer import \
-    Altitude_Hypercube_Year_Visualizer, AltitudeHypercubeVisualizerBis
+    Altitude_Hypercube_Year_Visualizer, AltitudeHypercubeVisualizerBis, AltitudeHypercubeVisualizerWithoutTrendType
 
 
 class AltitudeHypercubeVisualizerExtended(AltitudeHypercubeVisualizer):
@@ -12,16 +12,20 @@ class AltitudeHypercubeVisualizerExtended(AltitudeHypercubeVisualizer):
     def df_bool(self, display_trend_type, isin_parameters=None):
         df_bool = super().df_bool(display_trend_type)
         # Slice a part of the array
+        df_bool = self.isin_slicing(df_bool, isin_parameters)
+        return df_bool
+
+    def isin_slicing(self, df, isin_parameters):
         if isin_parameters is not None:
             assert isinstance(isin_parameters, list)
             for isin_parameter in isin_parameters:
                 transpose, values, level = isin_parameter
                 if transpose:
-                    df_bool = df_bool.transpose()
-                ind = df_bool.index.isin(values=values, level=level)
-                res = df_bool.loc[ind].copy()
-                df_bool = res.transpose() if transpose else res
-        return df_bool
+                    df = df.transpose()
+                ind = df.index.isin(values=values, level=level)
+                res = df.loc[ind].copy()
+                df = res.transpose() if transpose else res
+        return df
 
     def _visualize_meta(self, visualization_function, loading_function, name_to_isin_parameters=None,
                         multiplication_factor_column=None):
@@ -70,15 +74,21 @@ class AltitudeHypercubeVisualizerExtended(AltitudeHypercubeVisualizer):
 
     @property
     def altitude_band_name_to_values(self):
-        altitude_band = 1000
-        group_idxs = [a // altitude_band for a in self.altitudes]
-        altitude_band_name_to_values = {'All altitudes': self.altitudes}
-        for group_idx in set(group_idxs):
-            values = [a for a, i in zip(self.altitudes, group_idxs) if i == group_idx]
-            altitude_band_name = '{}m <= altitude <={}m'.format(group_idx * altitude_band,
-                                                                (group_idx + 1) * altitude_band)
-            altitude_band_name_to_values[altitude_band_name] = values
-        return altitude_band_name_to_values
+        return {
+            '900m <= alti <= 3000m': self.altitudes,
+            '900m <= alti <= 1800m': [900, 1200, 1500, 1800],
+            '2100m <= alti <= 3000m': [2100, 2400, 2700, 3000],
+        }
+
+        # altitude_band = 1000
+        # group_idxs = [a // altitude_band for a in self.altitudes]
+        # altitude_band_name_to_values = {'All altitudes': self.altitudes}
+        # for group_idx in set(group_idxs):
+        #     values = [a for a, i in zip(self.altitudes, group_idxs) if i == group_idx]
+        #     altitude_band_name = '{}m <= altitude <={}m'.format(group_idx * altitude_band,
+        #                                                         (group_idx + 1) * altitude_band)
+        #     altitude_band_name_to_values[altitude_band_name] = values
+        # return altitude_band_name_to_values
 
     @property
     def altitude_band_name_to_isin_parameters(self):
@@ -104,11 +114,16 @@ class AltitudeHypercubeVisualizerExtended(AltitudeHypercubeVisualizer):
                                     multiplication_factor_column=len(self.altitude_band_name_to_isin_parameters))
 
 
-
-
 class AltitudeHypercubeVisualizerBisExtended(AltitudeHypercubeVisualizerExtended, AltitudeHypercubeVisualizerBis):
     pass
 
 
+class AltitudeHypercubeVisualizerWithoutTrendExtended(AltitudeHypercubeVisualizerExtended,
+                                                      AltitudeHypercubeVisualizerWithoutTrendType):
+
+    def df_loglikelihood(self, isin_parameters=None):
+        return self.isin_slicing(df=super().df_loglikelihood(), isin_parameters=isin_parameters)
+
+
 class AltitudeYearHypercubeVisualizerExtended(AltitudeHypercubeVisualizerExtended, Altitude_Hypercube_Year_Visualizer):
     pass
diff --git a/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/altitude_year_hypercube_visualizer.py b/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/altitude_year_hypercube_visualizer.py
index 6535430d121e7798f61adc56ac666a521491999a..8b0ed5161c57826f40c923127f1ce067e717710d 100644
--- a/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/altitude_year_hypercube_visualizer.py
+++ b/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/altitude_year_hypercube_visualizer.py
@@ -4,6 +4,18 @@ from experiment.meteo_france_data.scm_models_data.visualization.hypercube_visual
     AltitudeHypercubeVisualizer
 
 
+class AltitudeHypercubeVisualizerWithoutTrendType(AltitudeHypercubeVisualizer):
+
+    def trend_type_to_series(self, reduction_function, isin_parameters=None):
+        return {trend_type: [] for trend_type in self.trend_types_to_process}
+
+    def df_loglikelihood(self, isin_parameters=None):
+        return -self.df_hypercube_trend_nllh
+
+    def ylabel_to_series(self, reduction_function, isin_parameters=None):
+        return {'mean LogLik': reduction_function(self.df_loglikelihood(isin_parameters=isin_parameters))}
+
+
 class AltitudeHypercubeVisualizerBis(AltitudeHypercubeVisualizer):
 
     @staticmethod
diff --git a/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/main_hypercube_visualization.py b/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/main_hypercube_visualization.py
index 90fad7b1ee9bb5663d1343c3b3ffb7b9feb8102b..64f0800f10c1b7440e5360660f33e267260b273c 100644
--- a/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/main_hypercube_visualization.py
+++ b/experiment/meteo_france_data/scm_models_data/visualization/hypercube_visualization/main_hypercube_visualization.py
@@ -5,9 +5,10 @@ from itertools import product
 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 \
-    AltitudeYearHypercubeVisualizerExtended, AltitudeHypercubeVisualizerExtended, AltitudeHypercubeVisualizerBisExtended
+    AltitudeYearHypercubeVisualizerExtended, AltitudeHypercubeVisualizerExtended, \
+    AltitudeHypercubeVisualizerBisExtended, AltitudeHypercubeVisualizerWithoutTrendExtended
 from experiment.meteo_france_data.scm_models_data.visualization.hypercube_visualization.altitude_year_hypercube_visualizer import \
-    Altitude_Hypercube_Year_Visualizer
+    Altitude_Hypercube_Year_Visualizer, AltitudeHypercubeVisualizerWithoutTrendType
 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.study_visualization.main_study_visualizer import \
@@ -98,8 +99,30 @@ def fast_altitude_year_hypercube():
                 # visualizer.visualize_massif_trend_test()
 
 
+def fast_altitude_without_trend_type_hypercube_extended():
+    save_to_file = False
+    only_first_one = False
+    nb_data_reduced_for_speed = True
+    altitudes = [ALL_ALTITUDES[3], ALL_ALTITUDES[-7]]
+    for study_class in SCM_STUDIES[:1]:
+        for last_starting_year in [None, 1989, 1999][:1]:
+            for trend_test_class in [GevLocationChangePointTest, GevScaleChangePointTest, GevShapeChangePointTest][:1]:
+                visualizers = [
+                    StudyVisualizer(study, temporal_non_stationarity=True, verbose=False, multiprocessing=True)
+                    for study in study_iterator(study_class=study_class, only_first_one=only_first_one,
+                                                altitudes=altitudes)]
+                altitude_to_visualizer = OrderedDict(zip(altitudes, visualizers))
+                visualizer = AltitudeHypercubeVisualizerWithoutTrendExtended(altitude_to_visualizer,
+                                                                             save_to_file=save_to_file,
+                                                                             trend_test_class=trend_test_class,
+                                                                             nb_data_reduced_for_speed=nb_data_reduced_for_speed,
+                                                                             last_starting_year=last_starting_year)
+                # visualizer.visualize_year_trend_test()
+                visualizer.vsualize_year_trend_by_regions_and_altitudes()
+
+
 def fast_altitude_year_hypercube_extended():
-    save_to_file = True
+    save_to_file = False
     only_first_one = False
     nb_data_reduced_for_speed = True
     altitudes = [ALL_ALTITUDES[3], ALL_ALTITUDES[-7]]
@@ -116,9 +139,9 @@ def fast_altitude_year_hypercube_extended():
                                                                  nb_data_reduced_for_speed=nb_data_reduced_for_speed,
                                                                  last_starting_year=last_starting_year)
                 # visualizer.visualize_year_trend_test()
-                visualizer.vsualize_year_trend_by_regions_and_altitudes()
                 # visualizer.visualize_altitude_trend_test()
                 # visualizer.visualize_massif_trend_test_by_altitudes()
+                visualizer.vsualize_year_trend_by_regions_and_altitudes()
                 visualizer.visualize_massif_trend_test_by_altitudes()
                 visualizer.visualize_altitute_trend_test_by_regions()
                 # visualizer.visualize_massif_trend_test()
@@ -154,10 +177,10 @@ def full_altitude_year_hypercube_extended():
     only_first_one = False
     nb_data_reduced_for_speed = False
     altitudes = ALL_ALTITUDES[3:-6]
-    for study_class in SCM_STUDIES[:]:
+    for study_class in SCM_STUDIES[1:]:
         for trend_test_class in [GevLocationChangePointTest, GevScaleChangePointTest,
                                  GevShapeChangePointTest][:1]:
-            years = [1967, 1977, 1987, 1997, 2007, None][-4:][::-1]
+            years = [1967, 1977, 1987, 1997, 2007, None][-4:]
             for last_starting_year in years:
                 for days in [1, 3][1:]:
                     visualizers = [
@@ -171,14 +194,39 @@ def full_altitude_year_hypercube_extended():
                                                                         nb_data_reduced_for_speed=nb_data_reduced_for_speed,
                                                                         last_starting_year=last_starting_year,
                                                                         )
+                    visualizer.vsualize_year_trend_by_regions_and_altitudes()
                     visualizer.visualize_altitute_trend_test_by_regions()
                     visualizer.visualize_massif_trend_test_by_altitudes()
-                    visualizer.vsualize_year_trend_by_regions_and_altitudes()
                     # visualizer.visualize_year_trend_test()
                     # visualizer.visualize_massif_trend_test()
                     # visualizer.visualize_altitude_trend_test()
 
 
+def full_altitude_year_hypercube__without_trend_extended():
+    save_to_file = True
+    only_first_one = False
+    nb_data_reduced_for_speed = False
+    altitudes = ALL_ALTITUDES[3:-6]
+    for study_class in SCM_STUDIES[1:]:
+        for trend_test_class in [GevLocationChangePointTest, GevScaleChangePointTest,
+                                 GevShapeChangePointTest][:1]:
+            years = [None][:]
+            for last_starting_year in years:
+                for days in [1, 3][1:]:
+                    visualizers = [
+                        StudyVisualizer(study, temporal_non_stationarity=True, verbose=False, multiprocessing=True)
+                        for study in study_iterator(study_class=study_class, only_first_one=only_first_one,
+                                                    altitudes=altitudes, nb_consecutive_days=days)]
+                    altitude_to_visualizer = OrderedDict(zip(altitudes, visualizers))
+                    visualizer = AltitudeHypercubeVisualizerWithoutTrendExtended(altitude_to_visualizer,
+                                                                                 save_to_file=save_to_file,
+                                                                                 trend_test_class=trend_test_class,
+                                                                                 nb_data_reduced_for_speed=nb_data_reduced_for_speed,
+                                                                                 last_starting_year=last_starting_year,
+                                                                                 )
+                    visualizer.vsualize_year_trend_by_regions_and_altitudes()
+
+
 def fast_quantity_altitude_hypercube():
     save_to_file = False
     only_first_one = False
@@ -203,8 +251,11 @@ def main_run():
     # fast_altitude_hypercube()
     # fast_altitude_year_hypercube()
 
+    # fast_altitude_without_trend_type_hypercube_extended()
+    full_altitude_year_hypercube__without_trend_extended()
+
     # fast_altitude_year_hypercube_extended()
-    full_altitude_year_hypercube_extended()
+    # full_altitude_year_hypercube_extended()
 
     # full_altitude_year_hypercube()
     # fast_quantity_altitude_hypercube()