Commit e394f7fa authored by Le Roux Erwan's avatar Le Roux Erwan
Browse files

[contrasting project] add comparative_curve_wrt_altitude.py to provide box plot wrt the altitude

parent 4e372cee
No related merge requests found
Showing with 11 additions and 8 deletions
+11 -8
from collections import OrderedDict from collections import OrderedDict
from itertools import chain
import matplotlib.pyplot as plt import matplotlib.pyplot as plt
import numpy as np import numpy as np
...@@ -65,9 +67,10 @@ class ComparativeCurveWrtAltitude(object): ...@@ -65,9 +67,10 @@ class ComparativeCurveWrtAltitude(object):
ax2.boxplot(x.values(), positions=self.altitudes, widths=width) ax2.boxplot(x.values(), positions=self.altitudes, widths=width)
ax2.set_xlim([min(self.altitudes) - width, max(self.altitudes) + width]) ax2.set_xlim([min(self.altitudes) - width, max(self.altitudes) + width])
if relative_change: if relative_change:
ax2.set_ylabel('Relative change in {} (%)'.format((ylabel.split('(')[0]))) ylabel2 = 'relative change in {} (%)'.format((ylabel.split('(')[0]))
else: else:
ax2.set_ylabel('Change in {}'.format(ylabel)) ylabel2 = 'change in {}'.format(ylabel)
ax2.set_ylabel('Distribution of ' + ylabel2)
# ax: Mean plots on top # ax: Mean plots on top
values = [list(v.values()) for v in [altitude_to_mean_value_before, altitude_to_mean_value_after]] values = [list(v.values()) for v in [altitude_to_mean_value_before, altitude_to_mean_value_after]]
...@@ -82,9 +85,9 @@ class ComparativeCurveWrtAltitude(object): ...@@ -82,9 +85,9 @@ class ComparativeCurveWrtAltitude(object):
ax.set_xlabel('Altitude (m)') ax.set_xlabel('Altitude (m)')
# Set same limits to align axis # Set same limits to align axis
a = np.array(list(x.values())) a = list(x.values())
all_values = list(a.flatten()) + values[0] + values[1] a = list(chain.from_iterable(a))
print(type(all_values)) all_values = a + values[0] + values[1]
epsilon = 0.03 * (max(all_values) - min(all_values)) epsilon = 0.03 * (max(all_values) - min(all_values))
ylim = [min(all_values) - epsilon, max(all_values) + epsilon] ylim = [min(all_values) - epsilon, max(all_values) + epsilon]
ax.set_ylim(ylim) ax.set_ylim(ylim)
......
...@@ -16,8 +16,8 @@ from projects.contrasting_trends_in_snow_loads.gorman_figures.figure1.study_visu ...@@ -16,8 +16,8 @@ from projects.contrasting_trends_in_snow_loads.gorman_figures.figure1.study_visu
def load_altitude_to_study_visualizer(study_class, save_to_file=True) -> OrderedDict: def load_altitude_to_study_visualizer(study_class, save_to_file=True) -> OrderedDict:
altitude_to_study_visualizer = OrderedDict() altitude_to_study_visualizer = OrderedDict()
# for altitude in ALL_ALTITUDES_WITHOUT_NAN[2:10]: for altitude in ALL_ALTITUDES_WITHOUT_NAN[2:10]:
for altitude in ALL_ALTITUDES_WITHOUT_NAN[2:5]: # for altitude in ALL_ALTITUDES_WITHOUT_NAN[2:5]:
return_period = 30 return_period = 30
study_visualizer = StudyVisualizerForReturnLevelChange(study_class=study_class, study_visualizer = StudyVisualizerForReturnLevelChange(study_class=study_class,
altitude=altitude, altitude=altitude,
...@@ -29,7 +29,7 @@ def load_altitude_to_study_visualizer(study_class, save_to_file=True) -> Ordered ...@@ -29,7 +29,7 @@ def load_altitude_to_study_visualizer(study_class, save_to_file=True) -> Ordered
def plots(): def plots():
for study_class in [SafranSnowfall1Day, SafranSnowfall3Days, SafranSnowfall5Days, SafranSnowfall7Days][:1]: for study_class in [SafranSnowfall1Day, SafranSnowfall3Days, SafranSnowfall5Days, SafranSnowfall7Days][:]:
altitude_to_study_visualizer = load_altitude_to_study_visualizer(study_class, save_to_file=True) altitude_to_study_visualizer = load_altitude_to_study_visualizer(study_class, save_to_file=True)
# for v in altitude_to_study_visualizer.values(): # for v in altitude_to_study_visualizer.values():
# v.all_plots() # v.all_plots()
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment