66import numpy as np
77from helper_plots import set_size
88
9- #%% Settings
9+ # %% Settings
1010result_folder = "results/conv_full_2"
1111
1212with h5py .File (join (result_folder , "settings.h5" ), "r" ) as f :
1717 modes = json .loads (f .attrs ["modes" ])
1818 A0s = json .loads (f .attrs ["A0s" ])
1919
20+ modes = ["Linear" , "KC" , "GE4" ]
21+
2022lambda0s = lambda0s [- 1 :]
2123print (lambda0s )
22- #%% Init plot
23- Nrows = 2
24- Ncols = 2
24+ # %% Init plot
25+ Nrows = 3
26+ Ncols = 1
2527
26- fig , axs = plt .subplots (Nrows , Ncols , sharex = True , sharey = False , figsize = set_size ("JAES" , fraction = 1 , height_ratio = 0.6 ))
28+ fig , axs = plt .subplots (Nrows , Ncols , sharex = True , sharey = False ,
29+ figsize = set_size ("JAES" , fraction = 1 , height_ratio = 0.7 ))
2730colors = plt .rcParams ['axes.prop_cycle' ].by_key ()['color' ]
2831markers = ['*' , '+' , '.' , '1' , 'o' , 'v' ]
2932
3033for k , mode in enumerate (modes ):
3134 for l , A0 in enumerate (A0s ):
32- #%% Retrieve reference data at midpoint
35+ # %% Retrieve reference data at midpoint
3336 with h5py .File (join (result_folder , f"{ mode } /{ A0 } /ref.h5" ), "r" ) as f :
3437 q_ref = f ["q" ][...]
3538 model_setting = json .loads (f .attrs ['model_dict' ])
@@ -54,35 +57,38 @@ def compute_error(q, qref):
5457 errors [i , j ] = compute_error (q , q_ref )
5558 else :
5659 errors [i , j ] = np .nan ()
57-
58- #%% Plot
59- ax = axs [k // 2 , k % 2 ]
60+
61+ # %% Plot
62+ ax = axs [k ]
6063 ax .set_xscale ("log" )
6164 ax .set_yscale ("log" )
6265 for i , lambda0 in enumerate (lambda0s ):
63- ax .plot (hs , errors [:, i ], label = r"$Q_0 = $" + f"{ A0 } m" , ls = "dotted" , marker = markers [l ], markersize = 10 , color = colors [l ])
66+ ax .plot (hs , errors [:, i ], label = r"$Q_0 = $" +
67+ f"{ A0 } m" , ls = "dotted" , marker = markers [l ], markersize = 10 , color = colors [l ])
6468 if (k == 3 ):
6569 # legend
66- ax .legend (bbox_to_anchor = (1 , 0.5 ), loc = "lower left" , frameon = True )
70+ ax .legend (bbox_to_anchor = (1 , 0.5 ), loc = "lower left" , frameon = True )
6771
6872 # ax.legend(frameon = True) #, ncol=3, bbox_to_anchor=(0.5, 1.05), loc = "upper center")
6973 # ax.set_ylim([np.min(errors) * 0.5, np.max(errors) * 2])
7074
71- ax .plot ([hs [- 1 ], hs [0 ]], [errors [- 1 , 0 ], errors [- 1 , 0 ]/ (hs [- 1 ] / hs [0 ])** 2 ], linestyle = "--" , color = "gray" )
75+ ax .plot ([hs [- 1 ], hs [0 ]], [errors [- 1 , 0 ], errors [- 1 , 0 ] /
76+ (hs [- 1 ] / hs [0 ])** 2 ], linestyle = "--" , color = "gray" )
7277
73- ax .text (0.1 , 0.8 , mode , transform = ax .transAxes )
78+ ax .text (0.1 , 0.7 , mode , transform = ax .transAxes )
7479 # Set x-axis ticks to align with data points
7580 stride = 2
76- if (k // 2 == 1 ):
81+ if (k == 2 ):
7782 ax .xaxis .set_minor_formatter (NullFormatter ())
7883 ax .xaxis .set_tick_params (which = 'minor' , size = 0 )
79- ax .xaxis .set_tick_params (which = 'minor' , width = 0 )
84+ ax .xaxis .set_tick_params (which = 'minor' , width = 0 )
8085 ax .set_xticks (hs [::stride ])
8186 ax .set_xticklabels ([f"{ x :.2e} " for x in hs [::stride ]])
82- else :
87+ elif ( k == 0 ) :
8388 # Add a secondary x axis with sampling frequency
8489 def forward (x ):
8590 return x
91+
8692 def backward (x ):
8793 return x
8894 secax = ax .secondary_xaxis ('top' , functions = (forward , backward ))
@@ -94,10 +100,10 @@ def backward(x):
94100 secax .xaxis .set_tick_params (which = 'minor' , width = 0 )
95101 # plt.xlabel("h (m)")
96102 # plt.ylabel("Relative error e")
97- fig .text (0.47 , 0.01 , 'h (m)' , ha = 'center' )
98- fig .text (0.47 , 0.95 , r'$f_{\rm s}$ (Hz)' , ha = 'center' )
103+ fig .text (0.52 , 0.01 , 'h (m)' , ha = 'center' )
104+ fig .text (0.52 , 0.95 , r'$f_{\rm s}$ (Hz)' , ha = 'center' )
99105fig .text (0.01 , 0.5 , 'Relative error e' , va = 'center' , rotation = 'vertical' )
100106plt .tight_layout ()
101- fig .subplots_adjust (left = 0.1 , hspace = 0.05 , wspace = 0.2 )
107+ fig .subplots_adjust (left = 0.1 , hspace = 0.05 , wspace = 0.2 )
102108
103- plt .show (block = True )
109+ plt .show (block = True )
0 commit comments