diff --git a/papers/exceeding_snow_loads/paper_main_utils.py b/papers/exceeding_snow_loads/paper_main_utils.py
index a4ff6384cdb127442d386b95de27efee538c5f20..4b5fc27d05c9b9a2736193c3f9e0e1d27f40e01f 100644
--- a/papers/exceeding_snow_loads/paper_main_utils.py
+++ b/papers/exceeding_snow_loads/paper_main_utils.py
@@ -1,10 +1,9 @@
 from collections import OrderedDict
-from enum import Enum
 
-from experiment.exceeding_snow_loads.study_visualizer_for_non_stationary_trends import \
-    StudyVisualizerForNonStationaryTrends
 from extreme_fit.model.margin_model.linear_margin_model.abstract_temporal_linear_margin_model import \
     TemporalMarginFitMethod
+from papers.exceeding_snow_loads.study_visualizer_for_non_stationary_trends import \
+    StudyVisualizerForNonStationaryTrends
 
 
 def load_altitude_to_visualizer(altitudes, massif_names, model_subsets_for_uncertainty, study_class,
diff --git a/papers/exceeding_snow_loads/result_trends_and_return_levels/main_result_trends_and_return_levels.py b/papers/exceeding_snow_loads/result_trends_and_return_levels/main_result_trends_and_return_levels.py
index 65d143432c54e82a03423aafdbdfd8808f43c8fe..043da14ed538264a5eef132035deee569cd24551 100644
--- a/papers/exceeding_snow_loads/result_trends_and_return_levels/main_result_trends_and_return_levels.py
+++ b/papers/exceeding_snow_loads/result_trends_and_return_levels/main_result_trends_and_return_levels.py
@@ -6,6 +6,9 @@ from experiment.meteo_france_data.scm_models_data.crocus.crocus import CrocusSno
 from papers.exceeding_snow_loads.paper_main_utils import load_altitude_to_visualizer
 from papers.exceeding_snow_loads.paper_utils import paper_study_classes, paper_altitudes
 from papers.exceeding_snow_loads.result_trends_and_return_levels.plot_diagnosis_risk import plot_diagnosis_risk
+from papers.exceeding_snow_loads.result_trends_and_return_levels.plot_selection_curves import plot_selection_curves
+from papers.exceeding_snow_loads.result_trends_and_return_levels.plot_trend_curves import plot_trend_curves
+from papers.exceeding_snow_loads.result_trends_and_return_levels.plot_uncertainty_curves import plot_uncertainty_massifs
 from papers.exceeding_snow_loads.result_trends_and_return_levels.plot_uncertainty_histogram import \
     plot_uncertainty_histogram
 from papers.exceeding_snow_loads.study_visualizer_for_non_stationary_trends import \
@@ -63,10 +66,11 @@ def intermediate_result(altitudes, massif_names=None,
 
     # Plots
     # plot_trend_map(altitude_to_visualizer)
-    plot_diagnosis_risk(altitude_to_visualizer)
+    # plot_diagnosis_risk(altitude_to_visualizer)
     # plot_trend_curves(altitude_to_visualizer={a: v for a, v in altitude_to_visualizer.items() if a >= 900})
     # plot_uncertainty_massifs(altitude_to_visualizer)
-    plot_uncertainty_histogram(altitude_to_visualizer)
+    # plot_uncertainty_histogram(altitude_to_visualizer)
+    plot_selection_curves(altitude_to_visualizer)
 
 
 def major_result():
@@ -86,11 +90,11 @@ def major_result():
 
 
 if __name__ == '__main__':
-    # major_result()
-    intermediate_result(altitudes=[1500, 1800], massif_names=None,
-                        uncertainty_methods=[ConfidenceIntervalMethodFromExtremes.my_bayes,
-                                             ConfidenceIntervalMethodFromExtremes.ci_mle][1:],
-                        multiprocessing=True)
+    major_result()
+    # intermediate_result(altitudes=[1500, 1800][:1], massif_names=None,
+    #                     uncertainty_methods=[ConfidenceIntervalMethodFromExtremes.my_bayes,
+    #                                          ConfidenceIntervalMethodFromExtremes.ci_mle][1:],
+    #                     multiprocessing=True)
     # intermediate_result(altitudes=[900, 1200], massif_names=['Maurienne'],
     #                     uncertainty_methods=[ConfidenceIntervalMethodFromExtremes.my_bayes,
     #                                          ConfidenceIntervalMethodFromExtremes.ci_mle][1:],
diff --git a/papers/exceeding_snow_loads/result_trends_and_return_levels/plot_selection_curves.py b/papers/exceeding_snow_loads/result_trends_and_return_levels/plot_selection_curves.py
new file mode 100644
index 0000000000000000000000000000000000000000..dfb96643aa2f46bf9c979b5c7b2b846e1f616695
--- /dev/null
+++ b/papers/exceeding_snow_loads/result_trends_and_return_levels/plot_selection_curves.py
@@ -0,0 +1,101 @@
+from typing import Dict
+from collections import Counter
+import matplotlib.pyplot as plt
+
+from experiment.meteo_france_data.scm_models_data.abstract_extended_study import AbstractExtendedStudy
+from experiment.meteo_france_data.scm_models_data.visualization.utils import create_adjusted_axes
+from papers.exceeding_snow_loads.paper_utils import dpi_paper1_figure
+from papers.exceeding_snow_loads.study_visualizer_for_non_stationary_trends import StudyVisualizerForNonStationaryTrends
+from itertools import chain
+
+def plot_selection_curves(altitude_to_visualizer: Dict[int, StudyVisualizerForNonStationaryTrends]):
+    """
+    Plot a single trend curves
+    :return:
+    """
+    visualizer = list(altitude_to_visualizer.values())[0]
+
+    ax = create_adjusted_axes(1, 1)
+
+    selected_counter = merge_counter([v.selected_trend_test_class_counter for v in altitude_to_visualizer.values()])
+    selected_and_significative_counter = merge_counter([v.selected_and_significative_trend_test_class_counter for v in altitude_to_visualizer.values()])
+    total_of_selected_models = sum(selected_counter.values())
+    select_list = get_ordered_list_from_counter(selected_counter, total_of_selected_models, visualizer)
+    selected_and_signifcative_list = get_ordered_list_from_counter(selected_and_significative_counter, total_of_selected_models, visualizer)
+    print(select_list)
+    print(selected_and_signifcative_list)
+
+    # parameters
+    width = 5
+    size = 20
+    legend_fontsize = 20
+    color = 'white'
+    labelsize = 15
+    linewidth = 3
+    x = [10 * (i+1) for i in range(len(select_list))]
+    ax.bar(x, select_list, width=width, color=color, edgecolor='blue', label='selected model',
+           linewidth=linewidth)
+    ax.bar(x, selected_and_signifcative_list, width=width, color=color, edgecolor='black',
+           label='significative selected model',
+           linewidth=linewidth)
+    ax.legend(loc='upper left', prop={'size': size})
+    ax.set_ylabel('Selected model (\%)', fontsize=legend_fontsize)
+    ax.set_xlabel('Models', fontsize=legend_fontsize)
+
+    ax.set_xticks(x)
+    labels = ['${}$'.format(t.label) for t in visualizer.non_stationary_trend_test]
+    ax.set_xticklabels(labels)
+
+    # for ax_horizontal in [ax, ax_twiny]:
+    #     if ax_horizontal == ax_twiny:
+    #         ax_horizontal.plot(altitudes, [0 for _ in altitudes], linewidth=0)
+    #     else:
+    #         ax_horizontal.set_xlabel('Altitude', fontsize=legend_fontsize)
+    #     ax_horizontal.set_xticks(altitudes)
+    #     ax_horizontal.set_xlim([700, 5000])
+    #     ax_horizontal.tick_params(labelsize=labelsize)
+    #
+    # # Set the number of massifs on the upper axis
+    # ax_twiny.set_xticklabels([v.study.nb_study_massif_names for v in altitude_to_visualizer.values()])
+    # ax_twiny.set_xlabel('Total number of massifs at each altitude (for the percentage)', fontsize=legend_fontsize)
+    #
+    # ax.set_ylabel('Massifs with decreasing trend (\%)', fontsize=legend_fontsize)
+    # max_percent = int(max(percent_decrease))
+    # n = 2 + (max_percent // 10)
+    # ax_ticks = [10 * i for i in range(n)]
+    # # upper_lim = max_percent + 3
+    # upper_lim = n + 5
+    # ax_lim = [0, upper_lim]
+    # for axis in [ax, ax_twinx]:
+    #     axis.set_ylim(ax_lim)
+    #     axis.set_yticks(ax_ticks)
+    #     axis.tick_params(labelsize=labelsize)
+    # ax.yaxis.grid()
+    #
+    # label_curve = (visualizer.label).replace('change', 'decrease')
+    # ax_twinx.set_ylabel(label_curve.replace('', ''), fontsize=legend_fontsize)
+    # for region_name, mean_decrease in zip(AbstractExtendedStudy.region_names, mean_decreases):
+    #     if len(mean_decreases) > 1:
+    #         label = region_name
+    #     else:
+    #         label = 'Mean relative decrease'
+    #     ax_twinx.plot(altitudes, mean_decrease, label=label, linewidth=linewidth, marker='o')
+    #     ax_twinx.legend(loc='upper right', prop={'size': size})
+
+    # Save plot
+    plt.show()
+    visualizer.plot_name = 'Selection curves'
+    visualizer.show_or_save_to_file(no_title=True, dpi=dpi_paper1_figure)
+    plt.close()
+
+
+def get_ordered_list_from_counter(selected_counter, total_of_selected_models, visualizer):
+    return [100 * float(selected_counter[t]) / total_of_selected_models if t in selected_counter else 0
+                for t in visualizer.non_stationary_trend_test]
+
+def merge_counter(counters_list):
+    global_counter = counters_list[0]
+    for c in counters_list[1:]:
+        global_counter += c
+    return global_counter
+
diff --git a/papers/exceeding_snow_loads/result_trends_and_return_levels/plot_uncertainty_histogram.py b/papers/exceeding_snow_loads/result_trends_and_return_levels/plot_uncertainty_histogram.py
index a9a9f95c2517214274f69e46814f33b45d9bcf95..76936a3dec980d7f740bb5941a559b9bfe60fe07 100644
--- a/papers/exceeding_snow_loads/result_trends_and_return_levels/plot_uncertainty_histogram.py
+++ b/papers/exceeding_snow_loads/result_trends_and_return_levels/plot_uncertainty_histogram.py
@@ -3,8 +3,8 @@ import matplotlib.pyplot as plt
 import numpy as np
 
 from experiment.eurocode_data.utils import EUROCODE_RETURN_LEVEL_STR, EUROCODE_ALTITUDES
-from experiment.exceeding_snow_loads.paper_utils import dpi_paper1_figure, ModelSubsetForUncertainty
-from experiment.exceeding_snow_loads.study_visualizer_for_non_stationary_trends import \
+from papers.exceeding_snow_loads.paper_utils import dpi_paper1_figure, ModelSubsetForUncertainty
+from papers.exceeding_snow_loads.study_visualizer_for_non_stationary_trends import \
     StudyVisualizerForNonStationaryTrends
 from extreme_fit.model.result_from_model_fit.result_from_extremes.confidence_interval_method import ci_method_to_color, \
     ci_method_to_label, ConfidenceIntervalMethodFromExtremes
diff --git a/papers/exceeding_snow_loads/study_visualizer_for_non_stationary_trends.py b/papers/exceeding_snow_loads/study_visualizer_for_non_stationary_trends.py
index 0ea784f83aef78e3e31a698ed2fda2918122a023..cd7b174888a0892da556ca242bbddd6bf6bcc05e 100644
--- a/papers/exceeding_snow_loads/study_visualizer_for_non_stationary_trends.py
+++ b/papers/exceeding_snow_loads/study_visualizer_for_non_stationary_trends.py
@@ -1,4 +1,4 @@
-from collections import OrderedDict
+from collections import OrderedDict, Counter
 from multiprocessing.pool import Pool
 from typing import Dict, List, Tuple
 
@@ -14,9 +14,9 @@ from experiment.meteo_france_data.scm_models_data.abstract_extended_study import
 from experiment.meteo_france_data.scm_models_data.abstract_study import AbstractStudy
 from experiment.meteo_france_data.scm_models_data.visualization.study_visualization.study_visualizer import \
     StudyVisualizer
-from experiment.exceeding_snow_loads.check_mcmc_convergence_for_return_levels.gelman_convergence_test import \
+from papers.exceeding_snow_loads.check_mcmc_convergence_for_return_levels.gelman_convergence_test import \
     compute_gelman_convergence_value
-from experiment.exceeding_snow_loads.paper_utils import ModelSubsetForUncertainty
+from papers.exceeding_snow_loads.paper_utils import ModelSubsetForUncertainty
 from experiment.trend_analysis.abstract_score import MeanScore
 from experiment.trend_analysis.univariate_test.extreme_trend_test.abstract_gev_trend_test import AbstractGevTrendTest
 from experiment.trend_analysis.univariate_test.extreme_trend_test.trend_test_one_parameter.gumbel_trend_test_one_parameter import \
@@ -278,6 +278,14 @@ class StudyVisualizerForNonStationaryTrends(StudyVisualizer):
         return {m: get_colors([v], self.cmap, -self._max_abs_change, self._max_abs_change)[0]
                 for m, v in self.massif_name_to_change_value.items()}
 
+    @cached_property
+    def selected_trend_test_class_counter(self):
+        return Counter([type(t) for t in self.massif_name_to_trend_test_that_minimized_aic.values()])
+
+    @cached_property
+    def selected_and_significative_trend_test_class_counter(self):
+        return Counter([type(t) for t in self.massif_name_to_trend_test_that_minimized_aic.values() if t.is_significant])
+
     @cached_property
     def massif_name_to_marker_style(self):
         d = {}