From cf98ca65540a2e16e412e1a26e6db71b5376cdfa Mon Sep 17 00:00:00 2001
From: Laura LINDEPERG <laura.lindeperg@irstea.priv>
Date: Tue, 25 May 2021 11:06:38 +0200
Subject: [PATCH] Many plots

---
 data_visualisation.py | 501 +++++++++++++++++++++++++++++++++---------
 1 file changed, 393 insertions(+), 108 deletions(-)

diff --git a/data_visualisation.py b/data_visualisation.py
index 2d86d75..d8bbb71 100644
--- a/data_visualisation.py
+++ b/data_visualisation.py
@@ -57,7 +57,7 @@ df_hydro_sig_45_long = df_hydro_sig_45.melt(id_vars = ['code'], var_name = 'hydr
 
 
 # Watersheds
-shp_watersheds_path = 'C:/Users/laura.lindeperg/Documents/DonneesLaura/Watersheds/complete_df_wrong_geometries.shp'
+shp_watersheds_path = 'C:/Users/laura.lindeperg/Documents/DonneesLaura/Watersheds/616_Catchments.shp'
 shp_foldername = 'C:/Users/laura.lindeperg/Documents/DonneesLaura/Watersheds/GEOMETRY/'
 
 shp_watersheds = gpd.read_file(shp_watersheds_path)
@@ -77,20 +77,19 @@ her_662 = pd.read_csv(her_662_path)
 
 
 # Geol
-df_geol_path = 'C:/Users/laura.lindeperg/Documents/INRAE_2021/CODE/fhysa/613_stations_geol_df.csv'
+df_geol_path = 'C:/Users/laura.lindeperg/Documents/INRAE_2021/CODE/fhysa/616_stations_geol_df.csv'
 df_geol = pd.read_csv(df_geol_path)
 
 # Geomorpho
-df_geomorpho_path = 'C:/Users/laura.lindeperg/Documents/INRAE_2021/CODE/fhysa/DeltaV.csv'
+df_geomorpho_path = 'C:/Users/laura.lindeperg/Documents/INRAE_2021/CODE/fhysa/616_stations_geomorpho_df.csv'
 df_geomorpho = pd.read_csv(df_geomorpho_path)
 
-delta_v = df_geomorpho.loc[:, ['Code', 'DeltaV']].rename(columns = {'Code':'code'})
 
 # Transform in long-form data structure
 df_hydro_sig = df_hydro_sig.drop(columns = ['name'])
 df_hydro_sig_long = df_hydro_sig.melt(id_vars = ['code'], var_name = 'hydro_sig')
 
-my_df = pd.merge(df_hydro_sig_long, df_geol, on = 'code', how = 'outer')
+my_df = pd.merge(df_hydro_sig_long, df_geomorpho, on = 'code', how = 'outer')
 # my_df = pd.merge(my_df, delta_v, on = 'code', how = 'outer')
 
 
@@ -98,23 +97,38 @@ my_df = pd.merge(df_hydro_sig_long, df_geol, on = 'code', how = 'outer')
 shp_watersheds = shp_watersheds.rename(columns = {'Code':'code'})
 my_df = pd.merge(my_df, shp_watersheds, on = 'code', how = 'outer')
 
+
+
+
+# Pick catchments within the rrse list
+my_df = my_df.loc[my_df.loc[:, 'code'].isin(rrse_241)==True]
+
+
 # Filter border catchments
 border_catchments = ['A3792010', 'A3902010', 'B4224310', 'B4601010', 'B4631010', 'D0156510', 'O1900010', 'O2620010', 'O6140010', 'U2512010', 'U2542010', 'U2722010','V1000010', 'V1020010']
 my_df = my_df.loc[my_df.loc[:, 'code'].isin(border_catchments)==False]
 
 # Filter catchments based on their size...
 size = shp_watersheds.loc[shp_watersheds.loc[:, 'S_km2'] < 5000]
-my_df = my_df.loc[my_df.loc[:, 'code'].isin(size.loc[:,'code'])==True]
+my_df = my_df.loc[my_df.loc[:, 'code'].isin(size.loc[:,'Code'])==True]
 # ...and their main geol proportion
 proportion_geol = df_geol.loc[df_geol.loc[:, 'maingeol_proportion'] > 0.70]
 my_df = my_df.loc[my_df.loc[:, 'code'].isin(proportion_geol.loc[:,'code'])==True]
 
+# Exculde catchments with weird hydrographs
+weird_catchments = pd.DataFrame(np.array(['H6201010', 'L4010710', 'Y1232010']), columns=['Code'])
+weird_catchments=weird_catchments.loc[:,'Code']
+my_df = my_df.loc[my_df.loc[:, 'code'].isin(weird_catchments)==False]
 
 # # Exclude catchments which disturb scales
+outlier_catchments = ['P5404010'] # outlier (value of a_l) in dimensioned version
+my_df = my_df.loc[my_df.loc[:,'code'].isin(outlier_catchments) == False]
+ 
 # outlier_catchments = ['V2814020']
-outlier_catchments = ['V2814020', 'V5045020', 'H4033010', 'S4214010']
+# outlier_catchments = ['V2814020', 'V5045020', 'H4033010', 'S4214010']
 # my_df = my_df.loc[my_df.loc[:,'code'].isin(['K6492510', 'V2814020', 'P7041510', 'A9001050', 'H8043310', 'H4033010']) == False]
 
+
 i = outlier_catchments[3]
 filename_i = 'watershed_'+i
 infile_i = open(filename_i, 'rb')
@@ -134,7 +148,7 @@ g.fig.autofmt_xdate()
 ## Discharge timeseries 
 
 # List of the stations'codes
-watershed_code = shp_watersheds.loc[:,'code']
+watershed_code = shp_watersheds.loc[:,'Code']
 
 code_from_rrse = rrse_241.loc[rrse_241.isin(watershed_code) == True]
 
@@ -169,28 +183,49 @@ weird_catchments=weird_catchments.loc[:,'Code']
 # no_duplicated = my_df_stations.drop(index_duplicated.index[0])
 
 # Get a sample of them for test
-code_for_test = watershed_code.loc[402:]
+code_for_test = watershed_code.loc[0:2]
 
 # Open stored watershed objects
-for i in watershed_code:
+# for i in watershed_code:
 # for i in odd_catchments:
-# for i in code_for_test:
-# for i in code_from_her:
+for i in code_for_test:
+# for i in code_from_rrse:
     # filename_i = 'C:/Users/laura.lindeperg/Documents/INRAE_2021/CODE/fhysa/Object_watershed/watershed_'+i
-    filename_i = 'C:/Users/laura.lindeperg/Documents/INRAE_2021/CODE/fhysa/Object_watershed/Adim/watershed_adim_'+i
     # filename_i = 'C:/Users/laura.lindeperg/Documents/INRAE_2021/CODE/fhysa/Object_watershed/watershed_allYears_'+i
+    # filename_i = 'C:/Users/laura.lindeperg/Documents/INRAE_2021/CODE/fhysa/Object_watershed/Adim_new/watershed_adim_'+i
+    filename_i = 'C:/Users/laura.lindeperg/Documents/INRAE_2021/CODE/fhysa/Object_watershed/Dim/watershed_dim_'+i
     infile_i = open(filename_i, 'rb')
     watershed_i = pickle.load(infile_i)
     infile_i.close()
     
-    timeseries_q_i = watershed_i.hydro_climatic_fluxes.discharge_timeseries
+    # timeseries_q_i = watershed_i.hydro_climatic_fluxes.discharge_timeseries
     area = str(watershed_i.contour['S_km2'][0])
-    # deleted_years = watershed_i.hydro_climatic_fluxes.Deleted_Hydro_Year
     
-    g = sns.relplot(x="Datetime", y="Q", kind="line", data=timeseries_q_i).set(title='watershed '+i+'  Area = '+area+ ' km²', ylabel= 'Q [mm/j]')
-    g.fig.autofmt_xdate()
+    deleted_years = watershed_i.hydro_climatic_fluxes.deleted_Hydro_Year
+    entire_timeseries = watershed_i.hydro_climatic_fluxes.entire_q_timeseries
+    where_removed_year = entire_timeseries['HydroDate'].dt.year.isin(deleted_years)
+    timeseries_q_i = pd.DataFrame(entire_timeseries)
+    # timeseries_q_i['Q'] = timeseries_q_i['Q'].mask(where_removed_year)
+    timeseries_q_i['Q'] = timeseries_q_i['Q'].where(~where_removed_year, np.nan)
+    removed_years = pd.DataFrame(entire_timeseries['Datetime'].where(where_removed_year)).dropna()
+    # removed_years = pd.to_datetime(removed_years['Datetime'])
+
+    # g = sns.relplot(x="Datetime", y="Q", kind = 'line', data= timeseries_q_i).set(title='watershed '+i+'  Area = '+area+ ' km²', ylabel= 'Q [mm/j]')
+    # # g = sns.relplot(x="Datetime", y="Q", kind = 'line', data= timeseries_q_i).set(title='watershed '+i+'  Area = '+area+ ' km²', ylabel= 'Q/Qmedian')
+    # plt.vlines(x = removed_years.Datetime, ymin = 0, ymax =timeseries_q_i.Q.max(), color = 'mistyrose')
+    # g.fig.autofmt_xdate()
+   
+    plt.close()
+    plt.plot(np.array(timeseries_q_i.Datetime), np.array(timeseries_q_i.Q))
+    # plt.yscale('log')
+    plt.vlines(x = removed_years.Datetime, ymin = 0, ymax =timeseries_q_i.Q.max(), color = 'mistyrose')
+    plt.xlabel('Datetime')
+    plt.ylabel('Q [mm/j]')
+    # plt.ylabel('Q/Qmedian')
+    plt.title(label='watershed '+i+'  Area = '+area+ ' km²')
+    plt.show()
     
-    g.savefig('C:/Users/laura.lindeperg/Documents/INRAE_2021/FIGURES/Discharge_timeseries/HER_Stations/discharge_timeseries_HERlist_'+i+'.png', dpi=400, facecolor='w',edgecolor='w', format='png', pad_inches=0.1)
+    plt.savefig('C:/Users/laura.lindeperg/Documents/INRAE_2021/FIGURES/Discharge_timeseries/Dim/616_Stations/discharge_timeseries_dim_'+i+'.png', dpi=400, facecolor='w',edgecolor='w', format='png', pad_inches=0.1)
 
 
 
@@ -200,9 +235,9 @@ geol = df_geol.loc[:, ['code', 'maingeol_description']]
 my_data = pd.merge(df_hydro_sig_45, geol)
 
 # Filtering workflow
-my_data = my_data.loc[my_data.loc[:, 'code'].isin(code_from_rrse)==True]
+my_data = my_data.loc[my_data.loc[:, 'code'].isin(rrse_241)==True]
 my_data = my_data.loc[my_data.loc[:, 'code'].isin(border_catchments)==False]
-my_data = my_data.loc[my_data.loc[:, 'code'].isin(size.loc[:,'code'])==True]
+my_data = my_data.loc[my_data.loc[:, 'code'].isin(size.loc[:,'Code'])==True]
 my_data = my_data.loc[my_data.loc[:, 'code'].isin(proportion_geol.loc[:,'code'])==True]
 # my_data = my_data.loc[my_data.loc[:, 'code'].isin(outlier_catchments)==False]
 my_data = my_data.loc[my_data.loc[:, 'code'].isin(weird_catchments)==False]
@@ -230,57 +265,243 @@ nobs = [i for i in nobs]
 
 my_df=my_df.sort_values(by=['maingeol_description'])
 
-## Boxplot of the hydrological signatures
 
-figure, axes = plt.subplots(4, 4, figsize = (17, 17))
+
+
+
+
+## Scatterplots of the hydrological signatures with extra dimension -> geol or geomorpho indicator parameter
+
+x_column = 'intermittent_ratio'
+y_column = 'value'
+define_hue = 'maingeol_description'
+
+
+figure, axes = plt.subplots(2, 3, figsize = (17, 17), sharex = True)
+# figure.suptitle('Hydrological signatures')
+axes[0, 0].set_title('BFI 5')
+axes[0, 1].set_title('BFI 90')
+axes[0, 2].set_title('b_l Roques')
+axes[1, 0].set_title('tau_l Roques')
+axes[1, 1].set_title('tau_l Horner')
+axes[1, 2].set_title('FDC slope')
+# axes[1, 2].set_title('FDC q90')
+
+
+sns.scatterplot(ax=axes[0, 0], x=x_column, y=y_column, data=my_df.loc[my_df.loc[:, 'hydro_sig'] == 'bfi_5']).set(xlabel = None, ylabel = None)
+sns.scatterplot(ax=axes[0, 1], x=x_column, y=y_column, data=my_df.loc[my_df.loc[:, 'hydro_sig'] == 'bfi_90']).set(xlabel = None, ylabel = None)
+sns.scatterplot(ax=axes[0, 2], x=x_column, y=y_column, data=my_df.loc[my_df.loc[:, 'hydro_sig'] == 'b_q']).set(xlabel = None, ylabel = None)
+sns.scatterplot(ax=axes[1, 0], x=x_column, y=y_column, data=my_df.loc[my_df.loc[:, 'hydro_sig'] == 'tau_roques']).set(ylabel = None)
+sns.scatterplot(ax=axes[1, 1], x=x_column, y=y_column, data=my_df.loc[my_df.loc[:, 'hydro_sig'] == 'tau_2']).set(ylabel = None)
+sns.scatterplot(ax=axes[1, 2], x=x_column, y=y_column, data=my_df.loc[my_df.loc[:, 'hydro_sig'] == 'fdc_slope']).set(ylabel = None)
+# sns.scatterplot(ax=axes[1, 2], x=x_column, y=y_column, hue = define_hue, data=my_df.loc[my_df.loc[:, 'hydro_sig'] == 'fdc_quantile90']).set(xlabel = None, ylabel = None)
+# ax31.set(xlabel = None, ylabel = None)
+axes[0,0].legend().set_visible(False)
+axes[0,1].legend().set_visible(False)
+axes[0,2].legend().set_visible(False)
+axes[1,0].legend().set_visible(False)
+axes[1,1].legend().set_visible(False)
+axes[1,2].legend().set_visible(False)
+# axes[1,2].legend().set_visible(False)
+# ax31.set_xticklabels('')
+# axes[2, 0].axis("off")
+# axes[2, 1].axis("off")
+# axes[2, 2].axis("off")
+
+import matplotlib.patches as mpatches
+
+mont = mpatches.Patch(color=sns.color_palette("deep")[0], label = nb_bv_geol.index[0] + ' - ' + nobs[0])
+socle_aquif = mpatches.Patch(color= sns.color_palette("deep")[1], label = nb_bv_geol.index[1] + ' - ' + nobs[1])
+socle_imper = mpatches.Patch(color= sns.color_palette("deep")[2], label = nb_bv_geol.index[2] + ' - ' + nobs[2])
+socle_semiper = mpatches.Patch(color= sns.color_palette("deep")[3], label = nb_bv_geol.index[3] + ' - ' + nobs[3])
+sedim_aqu_karst = mpatches.Patch(color= sns.color_palette("deep")[4], label = nb_bv_geol.index[4] + ' - ' + nobs[4])
+sedim_aqu_non_karst = mpatches.Patch(color= sns.color_palette("deep")[5], label = nb_bv_geol.index[5] + ' - ' + nobs[5])
+sedim_imper = mpatches.Patch(color= sns.color_palette("deep")[6], label = nb_bv_geol.index[6] + ' - ' + nobs[6])
+sedim_semiper_karst = mpatches.Patch(color= sns.color_palette("deep")[7], label = nb_bv_geol.index[7] + ' - ' + nobs[7])
+sedim_semiper_non_karst = mpatches.Patch(color= sns.color_palette("deep")[8], label = nb_bv_geol.index[8] + ' - ' + nobs[8])
+volc = mpatches.Patch(color= sns.color_palette("deep")[9], label = nb_bv_geol.index[9] + ' - ' + nobs[9])
+
+plt.legend(handles=[mont, socle_aquif, socle_imper, socle_semiper, sedim_aqu_karst, sedim_aqu_non_karst, sedim_imper, sedim_semiper_karst, sedim_semiper_non_karst, volc], loc='upper center', bbox_to_anchor=(0.5, -0.05))
+
+
+
+
+
+
+
+
+## Boxplots of the hydrological signatures with extra dimension -> geol or geomorpho indicator parameter
+
+x_column = 'maingeol_description'
+y_column = 'value'
+define_hue = 'maingeol_description'
+
+
+figure, axes = plt.subplots(2, 3, figsize = (17, 17), sharex = True)
+# figure.suptitle('Hydrological signatures')
+axes[0, 0].set_title('BFI 5')
+axes[0, 1].set_title('BFI 90')
+axes[0, 2].set_title('b_l Roques')
+axes[1, 0].set_title('tau_l Roques')
+axes[1, 1].set_title('tau_l Horner')
+axes[1, 2].set_title('FDC slope')
+# axes[1, 2].set_title('FDC q90')
+
+
+sns.boxplot(ax=axes[0, 0], x=x_column, y=y_column, data=my_df.loc[my_df.loc[:, 'hydro_sig'] == 'bfi_5']).set(xlabel = None, ylabel = None)
+sns.boxplot(ax=axes[0, 1], x=x_column, y=y_column, data=my_df.loc[my_df.loc[:, 'hydro_sig'] == 'bfi_90']).set(xlabel = None, ylabel = None)
+sns.boxplot(ax=axes[0, 2], x=x_column, y=y_column, data=my_df.loc[my_df.loc[:, 'hydro_sig'] == 'b_q']).set(xlabel = None, ylabel = None)
+ax10 = sns.boxplot(ax=axes[1, 0], x=x_column, y=y_column, data=my_df.loc[my_df.loc[:, 'hydro_sig'] == 'tau_roques']).set(xlabel = None, ylabel = None)
+sns.boxplot(ax=axes[1, 1], x=x_column, y=y_column, data=my_df.loc[my_df.loc[:, 'hydro_sig'] == 'tau_2']).set(xlabel = None, ylabel = None)
+sns.boxplot(ax=axes[1, 2], x=x_column, y=y_column, data=my_df.loc[my_df.loc[:, 'hydro_sig'] == 'fdc_slope']).set(xlabel = None, ylabel = None)
+# sns.scatterplot(ax=axes[1, 2], x=x_column, y=y_column, hue = define_hue, data=my_df.loc[my_df.loc[:, 'hydro_sig'] == 'fdc_quantile90']).set(xlabel = None, ylabel = None)
+# ax31.set(xlabel = None, ylabel = None)
+# axes[0,0].legend().set_visible(False)
+# axes[0,1].legend().set_visible(False)
+# axes[0,2].legend().set_visible(False)
+# axes[1,0].legend().set_visible(False)
+# axes[1,1].legend().set_visible(False)
+# axes[1,2].legend().set_visible(False)
+# axes[1,2].legend().set_visible(False)
+
+# axes[1,2].set(xlabel = None, ylabel = None)
+# axes[1,0].set_xticklabels('')
+# axes[1,1].set_xticklabels('')
+axes[1,2].set_xticklabels('')
+# axes[2, 0].axis("off")
+# axes[2, 1].axis("off")
+# axes[2, 2].axis("off")
+
+import matplotlib.patches as mpatches
+
+mont = mpatches.Patch(color=sns.color_palette("deep")[0], label = nb_bv_geol.index[0] + ' - ' + nobs[0])
+socle_aquif = mpatches.Patch(color= sns.color_palette("deep")[1], label = nb_bv_geol.index[1] + ' - ' + nobs[1])
+socle_imper = mpatches.Patch(color= sns.color_palette("deep")[2], label = nb_bv_geol.index[2] + ' - ' + nobs[2])
+socle_semiper = mpatches.Patch(color= sns.color_palette("deep")[3], label = nb_bv_geol.index[3] + ' - ' + nobs[3])
+sedim_aqu_karst = mpatches.Patch(color= sns.color_palette("deep")[4], label = nb_bv_geol.index[4] + ' - ' + nobs[4])
+sedim_aqu_non_karst = mpatches.Patch(color= sns.color_palette("deep")[5], label = nb_bv_geol.index[5] + ' - ' + nobs[5])
+sedim_imper = mpatches.Patch(color= sns.color_palette("deep")[6], label = nb_bv_geol.index[6] + ' - ' + nobs[6])
+sedim_semiper_karst = mpatches.Patch(color= sns.color_palette("deep")[7], label = nb_bv_geol.index[7] + ' - ' + nobs[7])
+sedim_semiper_non_karst = mpatches.Patch(color= sns.color_palette("deep")[8], label = nb_bv_geol.index[8] + ' - ' + nobs[8])
+volc = mpatches.Patch(color= sns.color_palette("deep")[9], label = nb_bv_geol.index[9] + ' - ' + nobs[9])
+
+plt.legend(handles=[mont, socle_aquif, socle_imper, socle_semiper, sedim_aqu_karst, sedim_aqu_non_karst, sedim_imper, sedim_semiper_karst, sedim_semiper_non_karst, volc], loc='upper center', bbox_to_anchor=(0.5, -0.05))
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+## Scatterplots of the hydrological signatures with extra dimension -> geol or geomorpho indicator parameter
+
+x_column = 'ks'
+y_column = 'value'
+define_hue = 'maingeol_description'
+
+
+figure, axes = plt.subplots(4, 4, figsize = (17, 17), sharex = True)
 # figure.suptitle('Hydrological signatures')
 axes[0, 0].set_title('Qmean')
 axes[0, 1].set_title('Aridity ratio')
 axes[0, 2].set_title('Runoff ratio')
 axes[0, 3].set_title('BFI 5')
-axes[1, 0].set_title('BF magni')
-axes[1, 1].set_title('a_q')
-axes[1, 2].set_title('b_q')
-axes[1, 3].set_title('FDC q10')
-axes[2, 0].set_title('FDC q90')
-axes[2, 1].set_title('FDC slope')
-axes[2, 2].set_title('tau 1')
-axes[2, 3].set_title('tau 2')
-axes[3, 0].set_title('tau Roques')
-axes[3, 1].set_title('BFI 90')
-
-sns.boxplot(ax=axes[0, 0], x='hydro_sig', y='value', data=my_df.loc[my_df.loc[:, 'hydro_sig'] == 'q_mean']).set(xlabel = None, xticks=[])
-sns.boxplot(ax=axes[0, 1], x='hydro_sig', y='value', data=my_df.loc[my_df.loc[:, 'hydro_sig'] == 'aridity_ratio']).set(xlabel = None, xticks=[])
-sns.boxplot(ax=axes[0, 2], x='hydro_sig', y='value', data=my_df.loc[my_df.loc[:, 'hydro_sig'] == 'runoff_ratio']).set(xlabel = None, xticks=[])
-sns.boxplot(ax=axes[0, 3], x='hydro_sig', y='value', data=my_df.loc[my_df.loc[:, 'hydro_sig'] == 'bfi_5']).set(xlabel = None, xticks=[])
-sns.boxplot(ax=axes[1, 0], x='hydro_sig', y='value', data=my_df.loc[my_df.loc[:, 'hydro_sig'] == 'bf_magni']).set(xlabel = None, xticks=[])
-sns.boxplot(ax=axes[1, 1], x='hydro_sig', y='value', data=my_df.loc[my_df.loc[:, 'hydro_sig'] == 'a_q']).set(xlabel = None, xticks=[])
-sns.boxplot(ax=axes[1, 2], x='hydro_sig', y='value', data=my_df.loc[my_df.loc[:, 'hydro_sig'] == 'b_q']).set(xlabel = None, xticks=[])
-sns.boxplot(ax=axes[1, 3], x='hydro_sig', y='value', data=my_df.loc[my_df.loc[:, 'hydro_sig'] == 'fdc_quantile10']).set(xlabel = None, xticks=[])
-sns.boxplot(ax=axes[2, 0], x='hydro_sig', y='value', data=my_df.loc[my_df.loc[:, 'hydro_sig'] == 'fdc_quantile90']).set(xlabel = None, xticks=[])
-sns.boxplot(ax=axes[2, 1], x='hydro_sig', y='value', data=my_df.loc[my_df.loc[:, 'hydro_sig'] == 'fdc_slope']).set(xlabel = None, xticks=[])
-sns.boxplot(ax=axes[2, 2], x='hydro_sig', y='value', data=my_df.loc[my_df.loc[:, 'hydro_sig'] == 'tau_1']).set(xlabel = None, xticks=[])
-sns.boxplot(ax=axes[2, 3], x='hydro_sig', y='value', data=my_df.loc[my_df.loc[:, 'hydro_sig'] == 'tau_2']).set(xlabel = None, xticks=[])
-sns.boxplot(ax=axes[3, 0], x='hydro_sig', y='value', data=my_df.loc[my_df.loc[:, 'hydro_sig'] == 'tau_roques']).set(xlabel = None, xticks=[])
-sns.boxplot(ax=axes[3, 1], x='hydro_sig', y='value', data=my_df.loc[my_df.loc[:, 'hydro_sig'] == 'bfi_90']).set(xlabel = None, xticks=[])
-
+axes[1, 0].set_title('BFI 90')
+axes[1, 1].set_title('BF magni')
+axes[1, 2].set_title('a_l Roques')
+axes[1, 3].set_title('b_l Roques')
+axes[2, 0].set_title('FDC q10')
+axes[2, 1].set_title('FDC q90')
+axes[2, 2].set_title('FDC slope')
+axes[2, 3].set_title('tau_e Horner')
+axes[3, 0].set_title('tau_l Horner ')
+axes[3, 1].set_title('tau_l Roques')
+
+ax00 = sns.scatterplot(ax=axes[0, 0], x=x_column, y=y_column, hue = define_hue, data=my_df.loc[my_df.loc[:, 'hydro_sig'] == 'q_mean']).set(xlabel = None, ylabel = None)
+ax01 = sns.scatterplot(ax=axes[0, 1], x=x_column, y=y_column, hue = define_hue, data=my_df.loc[my_df.loc[:, 'hydro_sig'] == 'aridity_ratio']).set(xlabel = None, ylabel = None)
+ax02 = sns.scatterplot(ax=axes[0, 2], x=x_column, y=y_column, hue = define_hue, data=my_df.loc[my_df.loc[:, 'hydro_sig'] == 'runoff_ratio']).set(xlabel = None, ylabel = None)
+ax03 = sns.scatterplot(ax=axes[0, 3], x=x_column, y=y_column, hue = define_hue, data=my_df.loc[my_df.loc[:, 'hydro_sig'] == 'bfi_5']).set(xlabel = None, ylabel = None)
+ax10 = sns.scatterplot(ax=axes[1, 0], x=x_column, y=y_column, hue = define_hue, data=my_df.loc[my_df.loc[:, 'hydro_sig'] == 'bfi_90']).set(xlabel = None, ylabel = None)
+ax11 = sns.scatterplot(ax=axes[1, 1], x=x_column, y=y_column, hue = define_hue, data=my_df.loc[my_df.loc[:, 'hydro_sig'] == 'bf_magni']).set(xlabel = None, ylabel = None)
+ax12 = sns.scatterplot(ax=axes[1, 2], x=x_column, y=y_column, hue = define_hue, data=my_df.loc[my_df.loc[:, 'hydro_sig'] == 'a_q']).set(xlabel = None, ylabel = None)
+ax13 = sns.scatterplot(ax=axes[1, 3], x=x_column, y=y_column, hue = define_hue, data=my_df.loc[my_df.loc[:, 'hydro_sig'] == 'b_q']).set(xlabel = None, ylabel = None)
+ax20 = sns.scatterplot(ax=axes[2, 0], x=x_column, y=y_column, hue = define_hue, data=my_df.loc[my_df.loc[:, 'hydro_sig'] == 'fdc_quantile10']).set(xlabel = None, ylabel = None)
+ax21 = sns.scatterplot(ax=axes[2, 1], x=x_column, y=y_column, hue = define_hue, data=my_df.loc[my_df.loc[:, 'hydro_sig'] == 'fdc_quantile90']).set(xlabel = None, ylabel = None)
+ax22 = sns.scatterplot(ax=axes[2, 2], x=x_column, y=y_column, hue = define_hue, data=my_df.loc[my_df.loc[:, 'hydro_sig'] == 'fdc_slope']).set(xlabel = None, ylabel = None)
+ax23 = sns.scatterplot(ax=axes[2, 3], x=x_column, y=y_column, hue = define_hue, data=my_df.loc[my_df.loc[:, 'hydro_sig'] == 'tau_1']).set(xlabel = None, ylabel = None)
+ax30 = sns.scatterplot(ax=axes[3, 0], x=x_column, y=y_column, hue = define_hue, data=my_df.loc[my_df.loc[:, 'hydro_sig'] == 'tau_2']).set(xlabel = None, ylabel = None)
+ax31 = sns.scatterplot(ax=axes[3, 1], x=x_column, y=y_column, hue = define_hue, data=my_df.loc[my_df.loc[:, 'hydro_sig'] == 'tau_roques'])
+ax31.set(xlabel = None, ylabel = None)
+axes[0,0].legend().set_visible(False)
+axes[0,1].legend().set_visible(False)
+axes[0,2].legend().set_visible(False)
+axes[0,3].legend().set_visible(False)
+axes[1,0].legend().set_visible(False)
+axes[1,1].legend().set_visible(False)
+axes[1,2].legend().set_visible(False)
+axes[1,3].legend().set_visible(False)
+axes[2,0].legend().set_visible(False)
+axes[2,1].legend().set_visible(False)
+axes[2,2].legend().set_visible(False)
+axes[2,3].legend().set_visible(False)
+axes[3,0].legend().set_visible(False)
+axes[3,1].legend().set_visible(False)
+# ax31.set_xticklabels('')
 axes[3, 2].axis("off")
 axes[3, 3].axis("off")
 
 
+import matplotlib.patches as mpatches
+
+mont = mpatches.Patch(color=sns.color_palette("deep")[0], label = nb_bv_geol.index[0] + ' - ' + nobs[0])
+socle_aquif = mpatches.Patch(color= sns.color_palette("deep")[1], label = nb_bv_geol.index[1] + ' - ' + nobs[1])
+socle_imper = mpatches.Patch(color= sns.color_palette("deep")[2], label = nb_bv_geol.index[2] + ' - ' + nobs[2])
+socle_semiper = mpatches.Patch(color= sns.color_palette("deep")[3], label = nb_bv_geol.index[3] + ' - ' + nobs[3])
+sedim_aqu_karst = mpatches.Patch(color= sns.color_palette("deep")[4], label = nb_bv_geol.index[4] + ' - ' + nobs[4])
+sedim_aqu_non_karst = mpatches.Patch(color= sns.color_palette("deep")[5], label = nb_bv_geol.index[5] + ' - ' + nobs[5])
+sedim_imper = mpatches.Patch(color= sns.color_palette("deep")[6], label = nb_bv_geol.index[6] + ' - ' + nobs[6])
+sedim_semiper_karst = mpatches.Patch(color= sns.color_palette("deep")[7], label = nb_bv_geol.index[7] + ' - ' + nobs[7])
+sedim_semiper_non_karst = mpatches.Patch(color= sns.color_palette("deep")[8], label = nb_bv_geol.index[8] + ' - ' + nobs[8])
+volc = mpatches.Patch(color= sns.color_palette("deep")[9], label = nb_bv_geol.index[9] + ' - ' + nobs[9])
+
+plt.legend(handles=[mont, socle_aquif, socle_imper, socle_semiper, sedim_aqu_karst, sedim_aqu_non_karst, sedim_imper, sedim_semiper_karst, sedim_semiper_non_karst, volc])
+
+
+
+
+
 
-## Boxplot of the hydrological signatures from their main hydrogeologic type perspective
-my_palette = ['#1f77b4', '#ff7f0e', '#2ca02c', '#d62728', '9467bd', '8c564b', 'e377c2', '7f7f7f', 'bcbd22', '17becf']
-sns_palette_default = [(0.12156862745098039, 0.4666666666666667, 0.7058823529411765),
-                    (1.0, 0.4980392156862745, 0.054901960784313725),
-                    (0.17254901960784313, 0.6274509803921569, 0.17254901960784313),
-                    (0.8392156862745098, 0.15294117647058825, 0.1568627450980392),
-                    (0.5803921568627451, 0.403921568627451, 0.7411764705882353),
-                    (0.5490196078431373, 0.33725490196078434, 0.29411764705882354),
-                    (0.8901960784313725, 0.4666666666666667, 0.7607843137254902),
-                    (0.4980392156862745, 0.4980392156862745, 0.4980392156862745),
-                    (0.7372549019607844, 0.7411764705882353, 0.13333333333333333),
-                    (0.09019607843137255, 0.7450980392156863, 0.8117647058823529)]
+
+
+## Boxplots of the hydrological signatures with extra dimension -> maingeol_description parameter
+
+
+x_column = 'maingeol_description'
+y_column = 'value'
+define_hue = 'maingeol-description'
 
 
 figure, axes = plt.subplots(4, 4, figsize = (17, 17), sharex = True)
@@ -289,61 +510,62 @@ axes[0, 0].set_title('Qmean')
 axes[0, 1].set_title('Aridity ratio')
 axes[0, 2].set_title('Runoff ratio')
 axes[0, 3].set_title('BFI 5')
-axes[1, 0].set_title('BF magni')
-axes[1, 1].set_title('a_q')
-axes[1, 2].set_title('b_q')
-axes[1, 3].set_title('FDC q10')
-axes[2, 0].set_title('FDC q90')
-axes[2, 1].set_title('FDC slope')
-axes[2, 2].set_title('tau 1')
-axes[2, 3].set_title('tau 2')
-axes[3, 0].set_title('tau Roques')
-axes[3, 1].set_title('BFI 90')
-
-ax00 = sns.boxplot(ax=axes[0, 0], x='maingeol_description', y='value', data=my_df.loc[my_df.loc[:, 'hydro_sig'] == 'q_mean'])
-ax01 = sns.boxplot(ax=axes[0, 1], x='maingeol_description', y='value', data=my_df.loc[my_df.loc[:, 'hydro_sig'] == 'aridity_ratio']).set(xlabel = None)
-ax02 = sns.boxplot(ax=axes[0, 2], x='maingeol_description', y='value', data=my_df.loc[my_df.loc[:, 'hydro_sig'] == 'runoff_ratio']).set(xlabel = None)
-ax03 = sns.boxplot(ax=axes[0, 3], x='maingeol_description', y='value', data=my_df.loc[my_df.loc[:, 'hydro_sig'] == 'bfi_5']).set(xlabel = None)
-ax10 = sns.boxplot(ax=axes[1, 0], x='maingeol_description', y='value', data=my_df.loc[my_df.loc[:, 'hydro_sig'] == 'bf_magni']).set(xlabel = None)
-ax11 = sns.boxplot(ax=axes[1, 1], x='maingeol_description', y='value', data=my_df.loc[my_df.loc[:, 'hydro_sig'] == 'a_q']).set(xlabel = None)
-ax12 = sns.boxplot(ax=axes[1, 2], x='maingeol_description', y='value', data=my_df.loc[my_df.loc[:, 'hydro_sig'] == 'b_q']).set(xlabel = None)
-ax13 = sns.boxplot(ax=axes[1, 3], x='maingeol_description', y='value', data=my_df.loc[my_df.loc[:, 'hydro_sig'] == 'fdc_quantile10']).set(xlabel = None)
-ax20 = sns.boxplot(ax=axes[2, 0], x='maingeol_description', y='value', data=my_df.loc[my_df.loc[:, 'hydro_sig'] == 'fdc_quantile90']).set(xlabel = None)
-ax21 = sns.boxplot(ax=axes[2, 1], x='maingeol_description', y='value', data=my_df.loc[my_df.loc[:, 'hydro_sig'] == 'fdc_slope']).set(xlabel = None)
-ax22 = sns.boxplot(ax=axes[2, 2], x='maingeol_description', y='value', data=my_df.loc[my_df.loc[:, 'hydro_sig'] == 'tau_1']).set(xlabel = None)
-ax23 = sns.boxplot(ax=axes[2, 3], x='maingeol_description', y='value', data=my_df.loc[my_df.loc[:, 'hydro_sig'] == 'tau_2']).set(xlabel = None)
-ax30 = sns.boxplot(ax=axes[3, 0], x='maingeol_description', y='value', data=my_df.loc[my_df.loc[:, 'hydro_sig'] == 'tau_roques']).set(xlabel = None)
-ax31 = sns.boxplot(ax=axes[3, 1], x='maingeol_description', y='value', data=my_df.loc[my_df.loc[:, 'hydro_sig'] == 'bfi_90'])
-ax31.set(xlabel = None)
+axes[1, 0].set_title('BFI 90')
+axes[1, 1].set_title('BF magni')
+axes[1, 2].set_title('a_l Roques')
+axes[1, 3].set_title('b_l Roques')
+axes[2, 0].set_title('FDC q10')
+axes[2, 1].set_title('FDC q90')
+axes[2, 2].set_title('FDC slope')
+axes[2, 3].set_title('tau_e Horner')
+axes[3, 0].set_title('tau_l Horner ')
+axes[3, 1].set_title('tau_l Roques')
+
+ax00 = sns.boxplot(ax=axes[0, 0], x=x_column, y=y_column, data=my_df.loc[my_df.loc[:, 'hydro_sig'] == 'q_mean']).set(xlabel = None, ylabel = None)
+ax01 = sns.boxplot(ax=axes[0, 1], x=x_column, y=y_column, data=my_df.loc[my_df.loc[:, 'hydro_sig'] == 'aridity_ratio']).set(xlabel = None, ylabel = None)
+ax02 = sns.boxplot(ax=axes[0, 2], x=x_column, y=y_column, data=my_df.loc[my_df.loc[:, 'hydro_sig'] == 'runoff_ratio']).set(xlabel = None, ylabel = None)
+ax03 = sns.boxplot(ax=axes[0, 3], x=x_column, y=y_column, data=my_df.loc[my_df.loc[:, 'hydro_sig'] == 'bfi_5']).set(xlabel = None, ylabel = None)
+ax10 = sns.boxplot(ax=axes[1, 0], x=x_column, y=y_column, data=my_df.loc[my_df.loc[:, 'hydro_sig'] == 'bfi_90']).set(xlabel = None, ylabel = None)
+ax11 = sns.boxplot(ax=axes[1, 1], x=x_column, y=y_column, data=my_df.loc[my_df.loc[:, 'hydro_sig'] == 'bf_magni']).set(xlabel = None, ylabel = None)
+ax12 = sns.boxplot(ax=axes[1, 2], x=x_column, y=y_column, data=my_df.loc[my_df.loc[:, 'hydro_sig'] == 'a_q']).set(xlabel = None, ylabel = None)
+ax13 = sns.boxplot(ax=axes[1, 3], x=x_column, y=y_column, data=my_df.loc[my_df.loc[:, 'hydro_sig'] == 'b_q']).set(xlabel = None, ylabel = None)
+ax20 = sns.boxplot(ax=axes[2, 0], x=x_column, y=y_column, data=my_df.loc[my_df.loc[:, 'hydro_sig'] == 'fdc_quantile10']).set(xlabel = None, ylabel = None)
+ax21 = sns.boxplot(ax=axes[2, 1], x=x_column, y=y_column, data=my_df.loc[my_df.loc[:, 'hydro_sig'] == 'fdc_quantile90']).set(xlabel = None, ylabel = None)
+ax22 = sns.boxplot(ax=axes[2, 2], x=x_column, y=y_column, data=my_df.loc[my_df.loc[:, 'hydro_sig'] == 'fdc_slope']).set(xlabel = None, ylabel = None)
+ax23 = sns.boxplot(ax=axes[2, 3], x=x_column, y=y_column, data=my_df.loc[my_df.loc[:, 'hydro_sig'] == 'tau_1']).set(xlabel = None, ylabel = None)
+ax30 = sns.boxplot(ax=axes[3, 0], x=x_column, y=y_column, data=my_df.loc[my_df.loc[:, 'hydro_sig'] == 'tau_2']).set(xlabel = None, ylabel = None)
+ax31 = sns.boxplot(ax=axes[3, 1], x=x_column, y=y_column, data=my_df.loc[my_df.loc[:, 'hydro_sig'] == 'tau_roques'])
+ax31.set(xlabel = None, ylabel = None)
+ax31.set_xticklabels('')
 axes[3, 2].axis("off")
 axes[3, 3].axis("off")
 
-# Add it to the plot
-pos = range(len(nobs))
-# for tick,label in zip(pos,ax31.get_xticklabels()):
-for tick,label in zip(pos,nb_bv_geol.index):
-    ax00.text(pos[tick],
-            6,
-            nobs[tick],
-            horizontalalignment='center',
-            fontsize='x-small',
-            color='black',
-            fontweight='semibold')
+# # Add it to the plot
+# pos = range(len(nobs))
+# # for tick,label in zip(pos,ax31.get_xticklabels()):
+# for tick,label in zip(pos,nb_bv_geol.index):
+#     ax00.text(pos[tick],
+#             6,
+#             nobs[tick],
+#             horizontalalignment='center',
+#             fontsize='x-small',
+#             color='black',
+#             fontweight='semibold')
     
 # legend
 
 import matplotlib.patches as mpatches
 
-mont = mpatches.Patch(color=sns.color_palette("deep")[0], label = nb_bv_geol.index[0])
-socle_aquif = mpatches.Patch(color= sns.color_palette("deep")[1], label = nb_bv_geol.index[1])
-socle_imper = mpatches.Patch(color= sns.color_palette("deep")[2], label = nb_bv_geol.index[2])
-socle_semiper = mpatches.Patch(color= sns.color_palette("deep")[3], label = nb_bv_geol.index[3])
-sedim_aqu_karst = mpatches.Patch(color= sns.color_palette("deep")[4], label = nb_bv_geol.index[4])
-sedim_aqu_non_karst = mpatches.Patch(color= sns.color_palette("deep")[5], label = nb_bv_geol.index[5])
-sedim_imper = mpatches.Patch(color= sns.color_palette("deep")[6], label = nb_bv_geol.index[6])
-sedim_semiper_karst = mpatches.Patch(color= sns.color_palette("deep")[7], label = nb_bv_geol.index[7])
-sedim_semiper_non_karst = mpatches.Patch(color= sns.color_palette("deep")[8], label = nb_bv_geol.index[8])
-volc = mpatches.Patch(color= sns.color_palette("deep")[9], label = nb_bv_geol.index[9])
+mont = mpatches.Patch(color=sns.color_palette("deep")[0], label = nb_bv_geol.index[0] + ' - ' + nobs[0])
+socle_aquif = mpatches.Patch(color= sns.color_palette("deep")[1], label = nb_bv_geol.index[1] + ' - ' + nobs[1])
+socle_imper = mpatches.Patch(color= sns.color_palette("deep")[2], label = nb_bv_geol.index[2] + ' - ' + nobs[2])
+socle_semiper = mpatches.Patch(color= sns.color_palette("deep")[3], label = nb_bv_geol.index[3] + ' - ' + nobs[3])
+sedim_aqu_karst = mpatches.Patch(color= sns.color_palette("deep")[4], label = nb_bv_geol.index[4] + ' - ' + nobs[4])
+sedim_aqu_non_karst = mpatches.Patch(color= sns.color_palette("deep")[5], label = nb_bv_geol.index[5] + ' - ' + nobs[5])
+sedim_imper = mpatches.Patch(color= sns.color_palette("deep")[6], label = nb_bv_geol.index[6] + ' - ' + nobs[6])
+sedim_semiper_karst = mpatches.Patch(color= sns.color_palette("deep")[7], label = nb_bv_geol.index[7] + ' - ' + nobs[7])
+sedim_semiper_non_karst = mpatches.Patch(color= sns.color_palette("deep")[8], label = nb_bv_geol.index[8] + ' - ' + nobs[8])
+volc = mpatches.Patch(color= sns.color_palette("deep")[9], label = nb_bv_geol.index[9] + ' - ' + nobs[9])
 
 plt.legend(handles=[mont, socle_aquif, socle_imper, socle_semiper, sedim_aqu_karst, sedim_aqu_non_karst, sedim_imper, sedim_semiper_karst, sedim_semiper_non_karst, volc])
 
@@ -352,6 +574,11 @@ plt.legend(handles=[mont, socle_aquif, socle_imper, socle_semiper, sedim_aqu_kar
 
 
 
+
+
+
+
+
 figure.legend([ax01.legend],             # List of the line objects
            labels= nb_bv_geol.index,       # The labels for each line
            #loc='best',        # Position of the legend
@@ -365,6 +592,13 @@ sns.boxplot(x='maingeol_description', y='value', data=my_df.loc[my_df.loc[:, 'hy
 
 
 
+
+
+
+
+
+
+
 ## Scatterplot - geographic repartition
 figure, axes = plt.subplots(4, 4, figsize = (17, 17))
 figure.suptitle('Hydrological signatures')
@@ -411,6 +645,45 @@ sns.boxplot(x='maingeol_description', y='DeltaV', data=my_df.loc[my_df.loc[:, 'h
 
 
 
+## Boxplots of the hydrological signatures
+
+figure, axes = plt.subplots(4, 4, figsize = (17, 17))
+# figure.suptitle('Hydrological signatures')
+axes[0, 0].set_title('Qmean')
+axes[0, 1].set_title('Aridity ratio')
+axes[0, 2].set_title('Runoff ratio')
+axes[0, 3].set_title('BFI 5')
+axes[1, 0].set_title('BF magni')
+axes[1, 1].set_title('a_q')
+axes[1, 2].set_title('b_q')
+axes[1, 3].set_title('FDC q10')
+axes[2, 0].set_title('FDC q90')
+axes[2, 1].set_title('FDC slope')
+axes[2, 2].set_title('tau 1')
+axes[2, 3].set_title('tau 2')
+axes[3, 0].set_title('tau Roques')
+axes[3, 1].set_title('BFI 90')
+
+sns.boxplot(ax=axes[0, 0], x='hydro_sig', y='value', data=my_df.loc[my_df.loc[:, 'hydro_sig'] == 'q_mean']).set(xlabel = None, xticks=[])
+sns.boxplot(ax=axes[0, 1], x='hydro_sig', y='value', data=my_df.loc[my_df.loc[:, 'hydro_sig'] == 'aridity_ratio']).set(xlabel = None, xticks=[])
+sns.boxplot(ax=axes[0, 2], x='hydro_sig', y='value', data=my_df.loc[my_df.loc[:, 'hydro_sig'] == 'runoff_ratio']).set(xlabel = None, xticks=[])
+sns.boxplot(ax=axes[0, 3], x='hydro_sig', y='value', data=my_df.loc[my_df.loc[:, 'hydro_sig'] == 'bfi_5']).set(xlabel = None, xticks=[])
+sns.boxplot(ax=axes[1, 0], x='hydro_sig', y='value', data=my_df.loc[my_df.loc[:, 'hydro_sig'] == 'bf_magni']).set(xlabel = None, xticks=[])
+sns.boxplot(ax=axes[1, 1], x='hydro_sig', y='value', data=my_df.loc[my_df.loc[:, 'hydro_sig'] == 'a_q']).set(xlabel = None, xticks=[])
+sns.boxplot(ax=axes[1, 2], x='hydro_sig', y='value', data=my_df.loc[my_df.loc[:, 'hydro_sig'] == 'b_q']).set(xlabel = None, xticks=[])
+sns.boxplot(ax=axes[1, 3], x='hydro_sig', y='value', data=my_df.loc[my_df.loc[:, 'hydro_sig'] == 'fdc_quantile10']).set(xlabel = None, xticks=[])
+sns.boxplot(ax=axes[2, 0], x='hydro_sig', y='value', data=my_df.loc[my_df.loc[:, 'hydro_sig'] == 'fdc_quantile90']).set(xlabel = None, xticks=[])
+sns.boxplot(ax=axes[2, 1], x='hydro_sig', y='value', data=my_df.loc[my_df.loc[:, 'hydro_sig'] == 'fdc_slope']).set(xlabel = None, xticks=[])
+sns.boxplot(ax=axes[2, 2], x='hydro_sig', y='value', data=my_df.loc[my_df.loc[:, 'hydro_sig'] == 'tau_1']).set(xlabel = None, xticks=[])
+sns.boxplot(ax=axes[2, 3], x='hydro_sig', y='value', data=my_df.loc[my_df.loc[:, 'hydro_sig'] == 'tau_2']).set(xlabel = None, xticks=[])
+sns.boxplot(ax=axes[3, 0], x='hydro_sig', y='value', data=my_df.loc[my_df.loc[:, 'hydro_sig'] == 'tau_roques']).set(xlabel = None, xticks=[])
+sns.boxplot(ax=axes[3, 1], x='hydro_sig', y='value', data=my_df.loc[my_df.loc[:, 'hydro_sig'] == 'bfi_90']).set(xlabel = None, xticks=[])
+
+axes[3, 2].axis("off")
+axes[3, 3].axis("off")
+
+
+
 
 
 
@@ -418,11 +691,23 @@ sns.boxplot(x='maingeol_description', y='DeltaV', data=my_df.loc[my_df.loc[:, 'h
 
 
 
+## En vrac - ne fonctionne pas toujours
 
 
 
+# ## Boxplot of the hydrological signatures from their main hydrogeologic type perspective
+# my_palette = ['#1f77b4', '#ff7f0e', '#2ca02c', '#d62728', '9467bd', '8c564b', 'e377c2', '7f7f7f', 'bcbd22', '17becf']
+# sns_palette_default = [(0.12156862745098039, 0.4666666666666667, 0.7058823529411765),
+#                     (1.0, 0.4980392156862745, 0.054901960784313725),
+#                     (0.17254901960784313, 0.6274509803921569, 0.17254901960784313),
+#                     (0.8392156862745098, 0.15294117647058825, 0.1568627450980392),
+#                     (0.5803921568627451, 0.403921568627451, 0.7411764705882353),
+#                     (0.5490196078431373, 0.33725490196078434, 0.29411764705882354),
+#                     (0.8901960784313725, 0.4666666666666667, 0.7607843137254902),
+#                     (0.4980392156862745, 0.4980392156862745, 0.4980392156862745),
+#                     (0.7372549019607844, 0.7411764705882353, 0.13333333333333333),
+#                     (0.09019607843137255, 0.7450980392156863, 0.8117647058823529)]
 
-# En vrac - ne fonctionne pas toujours
 
 
 sns.relplot(x='value', y='value', data=my_df.loc[my_df.loc[:, 'hydro_sig'] == 'a_q'])
-- 
GitLab