diff --git a/experiment/meteo_france_SCM_study/safran/safran.py b/experiment/meteo_france_SCM_study/safran/safran.py
index 94328f14501f2d2fa12a478ed961b57f72dc8246..5b8e19bce900639fc5a1bcb62c639f54d42052dc 100644
--- a/experiment/meteo_france_SCM_study/safran/safran.py
+++ b/experiment/meteo_france_SCM_study/safran/safran.py
@@ -18,8 +18,8 @@ class Safran(AbstractStudy):
 
 class SafranFrequency(Safran):
 
-    def __init__(self, variable_class: type, nb_consecutive_days=1, *args, **kwargs):
-        assert nb_consecutive_days <= 7
+    def __init__(self, variable_class: type, nb_consecutive_days: int = 1, *args, **kwargs):
+        assert 1 <= nb_consecutive_days <= 7
         super().__init__(variable_class, *args, **kwargs)
         self.nb_consecutive_days = nb_consecutive_days
 
diff --git a/experiment/meteo_france_SCM_study/visualization/study_visualization/main_study_visualizer.py b/experiment/meteo_france_SCM_study/visualization/study_visualization/main_study_visualizer.py
index 1ba595d626ac0ff509a7d9e046e2ed8c5e5ba386..592a57ebaefeed9fade895dce7593ba9477910e3 100644
--- a/experiment/meteo_france_SCM_study/visualization/study_visualization/main_study_visualizer.py
+++ b/experiment/meteo_france_SCM_study/visualization/study_visualization/main_study_visualizer.py
@@ -22,7 +22,8 @@ def study_iterator(study_class, only_first_one=False, both_altitude=False, verbo
         for alti in AbstractStudy.ALTITUDES[::1]:
             if verbose:
                 print('alti: {}, nb_day: {}'.format(alti, nb_day))
-            study = study_class(altitude=alti, nb_consecutive_days=nb_day) if is_safran_study else study_class(altitude=alti)
+            study = study_class(altitude=alti, nb_consecutive_days=nb_day) if is_safran_study \
+                else study_class(altitude=alti)
             yield study
             if only_first_one and not both_altitude:
                 break
diff --git a/experiment/meteo_france_SCM_study/visualization/study_visualization/study_visualizer.py b/experiment/meteo_france_SCM_study/visualization/study_visualization/study_visualizer.py
index f374dff40040a4c642083d09929c24b0e82fae10..50121a0f0ece133a8e229a459079e2f3b0a8f2ab 100644
--- a/experiment/meteo_france_SCM_study/visualization/study_visualization/study_visualizer.py
+++ b/experiment/meteo_france_SCM_study/visualization/study_visualization/study_visualizer.py
@@ -214,15 +214,19 @@ class StudyVisualizer(object):
         max_stable_models = load_test_max_stable_models(default_covariance_function=default_covariance_function)
         if only_first_max_stable:
             max_stable_models = max_stable_models[:1]
-        fig, axes = plt.subplots(len(max_stable_models) + 1, len(GevParams.SUMMARY_NAMES), figsize=self.figsize)
+        fig, axes = plt.subplots(len(max_stable_models) + 2, len(GevParams.SUMMARY_NAMES), figsize=self.figsize)
         fig.subplots_adjust(hspace=self.subplot_space, wspace=self.subplot_space)
         margin_class = LinearAllParametersAllDimsMarginModel
+
+        # Plot the margin fit independently
+        self.visualize_independent_margin_fits(threshold=None, axes=axes[0], show=False)
         # Plot the smooth margin only
         margin_model = margin_class(coordinates=self.coordinates)
         estimator = SmoothMarginEstimator(dataset=self.dataset, margin_model=margin_model)
-        self.fit_and_visualize_estimator(estimator, axes[0], title='without max stable')
+        self.fit_and_visualize_estimator(estimator, axes[1], title='without max stable')
+
         # Plot the smooth margin fitted with a max stable
-        for i, max_stable_model in enumerate(max_stable_models, 1):
+        for i, max_stable_model in enumerate(max_stable_models, 2):
             margin_model = margin_class(coordinates=self.coordinates)
             estimator = FullEstimatorInASingleStepWithSmoothMargin(self.dataset, margin_model, max_stable_model)
             title = get_display_name_from_object_type(type(max_stable_model))
@@ -247,6 +251,11 @@ class StudyVisualizer(object):
             updated_lim = new_lim * self.coef_zoom_map + (1 - self.coef_zoom_map) * old_lim
             for i, method in enumerate([ax.set_xlim, ax.set_ylim]):
                 method(updated_lim[i, 0], updated_lim[i, 1])
+        self.clean_axes_write_title_on_the_left(axes, title)
+
+    @staticmethod
+    def clean_axes_write_title_on_the_left(axes, title):
+        for ax in axes:
             ax.tick_params(axis=u'both', which=u'both', length=0)
             ax.spines['top'].set_visible(False)
             ax.spines['right'].set_visible(False)
@@ -257,9 +266,6 @@ class StudyVisualizer(object):
             ax.set_aspect('equal')
         ax0 = axes[0]
         ax0.get_yaxis().set_visible(True)
-        # todo: manage to remove ticks on ylabel
-        # finally it's good because it differntiate it from the other labels
-        #  maybe i could put it in bold
         ax0.set_ylabel(title)
         ax0.tick_params(axis=u'both', which=u'both', length=0)
 
@@ -283,7 +289,7 @@ class StudyVisualizer(object):
                 os.makedirs(dirname, exist_ok=True)
             plt.savefig(filepath)
 
-    def visualize_independent_margin_fits(self, threshold=None, axes=None):
+    def visualize_independent_margin_fits(self, threshold=None, axes=None, show=True):
         # Fit either a GEV or a GPD
         if threshold is None:
             params_names = GevParams.SUMMARY_NAMES
@@ -301,9 +307,9 @@ class StudyVisualizer(object):
             self.study.visualize_study(ax=ax, massif_name_to_value=df.loc[gev_param_name, :].to_dict(), show=False,
                                        replace_blue_by_white=gev_param_name != GevParams.SHAPE,
                                        label=gev_param_name)
+        self.clean_axes_write_title_on_the_left(axes, title='Independent fits')
 
-        if self.show:
-            # plot_name = 'Full Likelihood with Linear marginals and max stable dependency structure'
+        if show:
             plt.show()
 
     def visualize_annual_mean_values(self, ax=None, take_mean_value=True):