From 91aea61472500dea34b8608c1028b0138e3d3f32 Mon Sep 17 00:00:00 2001
From: Le Roux Erwan <erwan.le-roux@irstea.fr>
Date: Fri, 22 Feb 2019 09:37:53 +0100
Subject: [PATCH] [SCM] instead of round, display instead a significant number
 of digits

---
 experiment/meteo_france_SCM_study/main_visualize.py        | 3 ++-
 .../meteo_france_SCM_study/safran/safran_visualizer.py     | 6 ++++--
 utils.py                                                   | 7 +++++++
 3 files changed, 13 insertions(+), 3 deletions(-)

diff --git a/experiment/meteo_france_SCM_study/main_visualize.py b/experiment/meteo_france_SCM_study/main_visualize.py
index b522100d..2cf6622d 100644
--- a/experiment/meteo_france_SCM_study/main_visualize.py
+++ b/experiment/meteo_france_SCM_study/main_visualize.py
@@ -33,7 +33,7 @@ def study_iterator(study_class, only_first_one=False, both_altitude=False, verbo
 
 
 def extended_visualization():
-    for study_class in SCM_EXTENDED_STUDIES[1:2]:
+    for study_class in SCM_EXTENDED_STUDIES[-1:]:
         for study in study_iterator(study_class, only_first_one=True):
             study_visualizer = StudyVisualizer(study)
             # study_visualizer.visualize_all_kde_graphs()
@@ -57,6 +57,7 @@ def complete_analysis(only_first_one=False):
         for extended_study in study_iterator(extended_study_class, only_first_one=only_first_one):
             study_visualizer = StudyVisualizer(extended_study, save_to_file=True)
             study_visualizer.visualize_all_mean_and_max_graphs()
+            study_visualizer.visualize_all_experimental_law()
         print('Study normal')
         for study in study_iterator(study_class, only_first_one=only_first_one):
             study_visualizer = StudyVisualizer(study, save_to_file=True)
diff --git a/experiment/meteo_france_SCM_study/safran/safran_visualizer.py b/experiment/meteo_france_SCM_study/safran/safran_visualizer.py
index 65b17f7f..90ac03a8 100644
--- a/experiment/meteo_france_SCM_study/safran/safran_visualizer.py
+++ b/experiment/meteo_france_SCM_study/safran/safran_visualizer.py
@@ -23,7 +23,7 @@ from extreme_estimator.margin_fits.gpd.gpdmle_fit import GpdMleFit
 from extreme_estimator.margin_fits.plot.create_shifted_cmap import get_color_rbga_shifted
 from spatio_temporal_dataset.dataset.abstract_dataset import AbstractDataset
 from test.test_utils import load_test_max_stable_models
-from utils import get_display_name_from_object_type, VERSION_TIME
+from utils import get_display_name_from_object_type, VERSION_TIME, float_to_str_with_only_some_significant_digits
 
 
 class StudyVisualizer(object):
@@ -89,7 +89,9 @@ class StudyVisualizer(object):
 
         ax.set_ylabel('Density', color=color_kde)
         ax.set_xlabel(self.study.title)
-        extraticks = [round(x) for x in sorted(list(x_level_to_color.keys()))]
+        extraticks = [float(float_to_str_with_only_some_significant_digits(x, nb_digits=2))
+                      for x in sorted(list(x_level_to_color.keys()))]
+        extraticks = [extraticks[0], extraticks[-1]]
         ax.set_xticks(extraticks)
         ax.set_title(self.study.safran_massif_names[massif_id])
 
diff --git a/utils.py b/utils.py
index 92daa944..a27829a2 100644
--- a/utils.py
+++ b/utils.py
@@ -6,6 +6,7 @@ VERSION_TIME = str(VERSION).split('.')[0]
 for c in [' ', ':', '-']:
     VERSION_TIME = VERSION_TIME.replace(c, '_')
 
+
 def get_root_path() -> str:
     return op.dirname(op.abspath(__file__))
 
@@ -27,6 +28,12 @@ def first(s):
     return next(iter(s))
 
 
+def float_to_str_with_only_some_significant_digits(f, nb_digits) -> str:
+    assert isinstance(nb_digits, int)
+    assert nb_digits > 0
+    return '%s' % float('%.{}g'.format(nb_digits) % f)
+
+
 # todo: these cached property have a weird behavior with inheritence,
 #  when we call the super cached_property in the child method
 class cached_property(object):
-- 
GitLab