diff --git a/experiment/meteo_france_SCM_study/visualization/studies_visualization/main_studies_visualizer.py b/experiment/meteo_france_SCM_study/visualization/studies_visualization/main_studies_visualizer.py
index 689ac9c9b51b1af9b33909d43f61d9f85086b9a7..cecf5bebd5fe502ee2e257b202da8615f0b33cc3 100644
--- a/experiment/meteo_france_SCM_study/visualization/studies_visualization/main_studies_visualizer.py
+++ b/experiment/meteo_france_SCM_study/visualization/studies_visualization/main_studies_visualizer.py
@@ -8,7 +8,7 @@ from experiment.meteo_france_SCM_study.visualization.studies_visualization.studi
 from experiment.meteo_france_SCM_study.visualization.studies_visualization.studies_visualizer import StudiesVisualizer, \
     AltitudeVisualizer
 from experiment.meteo_france_SCM_study.visualization.study_visualization.main_study_visualizer import ALL_ALTITUDES, \
-    study_iterator_global
+    study_iterator_global, SCM_STUDIES
 
 from experiment.meteo_france_SCM_study.visualization.study_visualization.study_visualizer import StudyVisualizer
 from collections import OrderedDict
@@ -22,18 +22,20 @@ def normal_visualization():
 
 
 def altitude_trends():
-    save_to_file = False
+    save_to_file = True
     only_first_one = False
     # altitudes that have 20 massifs at least
     altitudes = ALL_ALTITUDES[3:-6]
     # altitudes = ALL_ALTITUDES[:2]
-    visualizers = [StudyVisualizer(study, save_to_file=save_to_file, temporal_non_stationarity=True, verbose=True,
-                                   score_class=MedianScore)
-                   for study in study_iterator_global(study_classes=[SafranSnowfall], only_first_one=only_first_one,
-                                                      altitudes=altitudes)]
-    altitude_to_visualizer = OrderedDict(zip(altitudes, visualizers))
-    visualizer = AltitudeVisualizer(altitude_to_visualizer)
-    visualizer.negative_trend_percentages_evolution()
+    for study_class in SCM_STUDIES[:]:
+        for score_class in [MedianScore, MeanScore, MannKendall, WeigthedScore]:
+            visualizers = [StudyVisualizer(study, temporal_non_stationarity=True, verbose=True,
+                                           score_class=score_class)
+                           for study in study_iterator_global(study_classes=[study_class], only_first_one=only_first_one,
+                                                              altitudes=altitudes)]
+            altitude_to_visualizer = OrderedDict(zip(altitudes, visualizers))
+            visualizer = AltitudeVisualizer(altitude_to_visualizer, multiprocessing=False, save_to_file=save_to_file)
+            visualizer.negative_trend_percentages_evolution(reverse=True)
 
 
 if __name__ == '__main__':
diff --git a/experiment/meteo_france_SCM_study/visualization/studies_visualization/studies_visualizer.py b/experiment/meteo_france_SCM_study/visualization/studies_visualization/studies_visualizer.py
index 2403e3924739ebf551f24e75981ad3973a9afdb9..80c1d6a03ca3271e91810781d34baaf586c7ca40 100644
--- a/experiment/meteo_france_SCM_study/visualization/studies_visualization/studies_visualizer.py
+++ b/experiment/meteo_france_SCM_study/visualization/studies_visualization/studies_visualizer.py
@@ -1,4 +1,7 @@
 from collections import OrderedDict, Counter
+import os
+import os.path as op
+from multiprocessing.dummy import Pool
 from typing import Dict
 
 import numpy as np
@@ -11,7 +14,7 @@ from experiment.meteo_france_SCM_study.visualization.studies_visualization.studi
     Studies
 from experiment.meteo_france_SCM_study.visualization.study_visualization.study_visualizer import StudyVisualizer
 from experiment.meteo_france_SCM_study.visualization.utils import plot_df
-from utils import cached_property, get_display_name_from_object_type
+from utils import cached_property, get_display_name_from_object_type, VERSION_TIME
 
 
 class StudiesVisualizer(object):
@@ -40,9 +43,16 @@ class StudiesVisualizer(object):
         plot_df(df_mean)
 
 
+def get_percentages(v):
+    return v.percentages_of_negative_trends()[0]
+
+
 class AltitudeVisualizer(object):
 
-    def __init__(self, altitude_to_study_visualizer: Dict[int, StudyVisualizer]):
+    def __init__(self, altitude_to_study_visualizer: Dict[int, StudyVisualizer], multiprocessing=False,
+                 save_to_file=False):
+        self.save_to_file = save_to_file
+        self.multiprocessing = multiprocessing
         assert isinstance(altitude_to_study_visualizer, OrderedDict)
         self.altitude_to_study_visualizer = altitude_to_study_visualizer
 
@@ -52,12 +62,21 @@ class AltitudeVisualizer(object):
 
     @cached_property
     def all_percentages(self):
-        return [v.percentages_of_negative_trends()[0] for v in self.altitude_to_study_visualizer.values()]
+        if self.multiprocessing:
+            with Pool(4) as p:
+                l = p.map(get_percentages, list(self.altitude_to_study_visualizer.values()))
+        else:
+            l = [get_percentages(v) for v in self.altitude_to_study_visualizer.values()]
+        return l
 
     @property
     def any_study_visualizer(self) -> StudyVisualizer:
         return list(self.altitude_to_study_visualizer.values())[0]
 
+    @property
+    def study(self):
+        return self.any_study_visualizer.study
+
     def get_item_fct(self, year):
         idx = self.any_study_visualizer.starting_years.index(year)
         f = lambda s: s[idx]
@@ -78,12 +97,25 @@ class AltitudeVisualizer(object):
         years = [y + self.starting_year for y in years]
         return years
 
-    def negative_trend_percentages_evolution(self):
+    def show_or_save_to_file(self, specific_title=''):
+        if self.save_to_file:
+            main_title, _ = '_'.join(self.study.title.split()).split('/')
+            filename = "{}/{}/".format(VERSION_TIME, main_title)
+            filename += specific_title
+            filepath = op.join(self.study.result_full_path, filename + '.png')
+            dirname = op.dirname(filepath)
+            if not op.exists(dirname):
+                os.makedirs(dirname, exist_ok=True)
+            plt.savefig(filepath)
+        else:
+            plt.show()
+
+    def negative_trend_percentages_evolution(self, reverse=True):
         curve_name__metric_and_color = [
-            ('max', np.max, 'r'),
+            ('max', np.max, 'g'),
             ('mean', np.mean, 'b'),
             ('median', np.median, 'c'),
-            ('min', np.min, 'g'),
+            ('min', np.min, 'r'),
         ]
         # Add some years
         # spotted_years = [1963, 1976]
@@ -94,10 +126,10 @@ class AltitudeVisualizer(object):
         #     curve_name__metric_and_color.append(new)
 
         for year, marker in zip(self.get_top_potential_years(), str_markers):
-            new = (str(year), self.get_item_fct(year), 'm', marker + ':')
+            new = (str(year), self.get_item_fct(year), 'y', marker + ':')
             curve_name__metric_and_color.append(new)
         for year, marker in zip(self.get_top_potential_years(reverse=True), str_markers):
-            new = (str(year), self.get_item_fct(year), 'y', marker + ':')
+            new = (str(year), self.get_item_fct(year), 'm', marker + ':')
             curve_name__metric_and_color.append(new)
 
         fig, ax = plt.subplots(1, 1, figsize=self.any_study_visualizer.figsize)
@@ -105,6 +137,13 @@ class AltitudeVisualizer(object):
             marker, curve_name = (marker[0], curve_name + ' starting year') if marker \
                 else ('-', curve_name + ' over the starting years')
             values = [metric(p) for p in self.all_percentages]
+            if reverse:
+                values = [100 - v for v in values]
+                k = ['max', 'min']
+                for before, new in zip(k, k[::-1]):
+                    if before in curve_name:
+                        curve_name = curve_name.replace(before, new)
+                        break
             ax.plot(self.altitudes, values, color + marker, label=curve_name)
         ax.legend()
         ax.set_xticks(self.altitudes)
@@ -112,9 +151,11 @@ class AltitudeVisualizer(object):
         ax.grid()
 
         ax.axhline(y=50, color='k')
-        ax.set_ylabel('% of negative trends')
+        word = 'positive' if reverse else 'negative'
+        ax.set_ylabel('% of massifs with {} trends'.format(word))
         ax.set_xlabel('altitude')
-        scoer_class_name = get_display_name_from_object_type(self.any_study_visualizer.score_class)
-        title = 'Distribution of negative trend for the {}'.format(scoer_class_name)
+        variable_name = self.study.variable_class.NAME
+        score_name = get_display_name_from_object_type(self.any_study_visualizer.score_class)
+        title = 'Evolution of {} trends wrt to the altitude with {}'.format(variable_name, score_name)
         ax.set_title(title)
-        plt.show()
+        self.show_or_save_to_file(specific_title=title)
\ No newline at end of file