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 0923fbe59d0865c87ac4f0422b5db8e4993960bf..7a35e9d0a787218d44db5745f25baf4f4ad3c450 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 @@ -151,8 +151,9 @@ class AltitudeHypercubeVisualizer(AbstractHypercubeVisualizer): else: ax.set_title(plot_title) ax.legend() - ax.set_xlabel(xlabel) - plt.setp(ax.get_yticklabels(), visible=False) + # Common things to all the graph + ax.set_xlabel(xlabel) + plt.setp(ax.get_yticklabels(), visible=False) specific_title = 'Evolution of {} trends wrt to the {} with {}'.format(subtitle, xlabel, self.trend_test_name) @@ -279,7 +280,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): + show_or_save_to_file=True, + subtitle_specified=None): if axes is None: axes = self.load_trend_test_evolution_axes(self.nb_rows) else: @@ -287,7 +289,8 @@ class AltitudeHypercubeVisualizer(AbstractHypercubeVisualizer): results = [] for subtitle, reduction_function in self.subtitle_to_reduction_function(self.year_reduction, - add_detailed_plot=add_detailed_plots).items(): + add_detailed_plot=add_detailed_plots, + subtitle=subtitle_specified).items(): specific_title, best_year = self.visualize_trend_test_evolution( reduction_function=reduction_function, xlabel=STARTING_YEARS_XLABEL, 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 c0382caf1e33b404c76efedd34bda4f89c9f8e7c..3e1607a4e43bd4e7b68cbd527704213ef6858c6f 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 @@ -122,7 +122,9 @@ class AltitudeHypercubeVisualizerWithoutTrendExtended(AltitudeHypercubeVisualize AltitudeHypercubeVisualizerWithoutTrendType): def df_loglikelihood(self, isin_parameters=None): - return self.isin_slicing(df=super().df_loglikelihood(), isin_parameters=isin_parameters) + df = super().df_loglikelihood() + df = self.isin_slicing(df=df, isin_parameters=isin_parameters) + return df # Extension 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 47fff2ff7f36f617e2df2cb3c7e951ea7d1e3690..f8d5aba90c942ecd080c316cbc6ebc37376acdc4 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 @@ -1,23 +1,28 @@ from experiment.meteo_france_data.scm_models_data.visualization.hypercube_visualization.altitude_hypercube_visualizer_extended import \ - QuantityHypercubeWithoutTrend, AltitudeHypercubeVisualizerBisExtended + QuantityHypercubeWithoutTrend, AltitudeHypercubeVisualizerBisExtended, \ + AltitudeHypercubeVisualizerWithoutTrendExtended from experiment.meteo_france_data.scm_models_data.visualization.hypercube_visualization.main_files.main_fast_hypercube_one_altitudes import \ - get_fast_parameters, get_fast_quantity_visualizer + get_fast_parameters, get_fast_quantity_visualizer, get_fast_altitude_visualizer from experiment.meteo_france_data.scm_models_data.visualization.hypercube_visualization.main_files.main_full_hypercube import \ get_full_quantity_visualizer, get_full_altitude_visualizer 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 + SCM_STUDIES, altitude_massif_name_and_study_class_for_poster +from utils import get_display_name_from_object_type POSTER_ALTITUDES = [900, 1800, 2700] + + def fast_poster(): for altitude in POSTER_ALTITUDES[:1]: study_classes = SCM_STUDIES[:2] results = get_fast_quantity_visualizer(QuantityHypercubeWithoutTrend, altitude=altitude, - study_classes=study_classes).visualize_year_trend_test(add_detailed_plots=True) + study_classes=study_classes).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(): altitudes, last_starting_year, nb_data_reduced_for_speed, only_first_one, save_to_file, trend_test_class = get_fast_parameters( @@ -36,12 +41,24 @@ def full_poster(): study_classes = SCM_STUDIES[:] results = get_full_quantity_visualizer(QuantityHypercubeWithoutTrend, altitude=altitude, - study_classes=study_classes).visualize_year_trend_test(add_detailed_plots=True) + study_classes=study_classes).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(): - spatial_visualizer = get_full_altitude_visualizer(AltitudeHypercubeVisualizerBisExtended, [study_class], exact_starting_year=exact_year, altitude=altitude) + spatial_visualizer = get_full_altitude_visualizer(AltitudeHypercubeVisualizerBisExtended, [study_class], + exact_starting_year=exact_year, altitude=altitude) spatial_visualizer.visualize_massif_trend_test_one_altitude() +def example_for_the_starting_years(): + for altitude, massif_name, study_class in altitude_massif_name_and_study_class_for_poster[:]: + visualizer = get_full_altitude_visualizer(AltitudeHypercubeVisualizerWithoutTrendExtended, altitude=altitude, + study_classes=[study_class]) + isin_parameters = [(False, [massif_name], visualizer.massif_index_level)] + visualizer.visualize_year_trend_test(isin_parameters=isin_parameters, + subtitle_specified=get_display_name_from_object_type(study_class)) + + if __name__ == '__main__': - full_poster() + # full_poster() + example_for_the_starting_years() 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 fdf51de3b7b5c9d4d6f76a400d2a5a18d4971332..cce373b30cdd55ed5eb0492516f85acb1585caa0 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 @@ -595,7 +595,7 @@ class StudyVisualizer(VisualizationParameters): ax.xaxis.set_ticks(x[2::10]) # self.visualize_massif_graphs(self.visualize_mean_and_max_graph, # specified_massif_ids=specified_massif_ids) - plot_name = 'Annual maxima of {} in {} at {}'.format(snow_abbreviation, massif_name, altitude) + plot_name = '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) ax.clear()