From 0a88f769c6c69ad71161bc77c0750cfa9108d822 Mon Sep 17 00:00:00 2001 From: Chaitanya CHINTALURI Date: Fri, 4 Aug 2023 13:53:44 +0200 Subject: [PATCH] figure for submission --- figures/kCSD_properties/L_curve_simulation.py | 3 +- figures/kCSD_properties/figure_LC.py | 10 ++-- figures/kCSD_properties/figure_LCandCV.py | 45 ++++++++++-------- .../figure_LCandCVperformance.py | 20 ++++---- figures/kCSD_properties/figure_properties.py | 2 + .../kCSD_properties/sources_electrodes.odg | Bin 20805 -> 22614 bytes figures/kCSD_properties/tutorial_basic.py | 12 +++-- .../tutorial_broken_electrodes.py | 6 ++- .../tutorial_broken_electrodes_diff_err.py | 14 ++++-- .../tutorial_noisy_electrodes.py | 21 ++++---- kcsd/utility_functions.py | 18 +++---- 11 files changed, 85 insertions(+), 66 deletions(-) diff --git a/figures/kCSD_properties/L_curve_simulation.py b/figures/kCSD_properties/L_curve_simulation.py index 57b060cd..79b9d936 100644 --- a/figures/kCSD_properties/L_curve_simulation.py +++ b/figures/kCSD_properties/L_curve_simulation.py @@ -112,7 +112,7 @@ def main_loop(src_width, total_ele, inpos, lpos, nm, noise=0, srcs=1): t_csd_x, t_csd_y, true_csd = generate_csd_1D(src_width, nm, srcs=srcs, start_x=0, end_x=1., start_y=0, end_y=1, - res_x=100, res_y=100) + res_x=101, res_y=101) if type(noise) == float: n_spec = [noise] else: n_spec = noise for i, noise in enumerate(n_spec): @@ -142,6 +142,7 @@ def main_loop(src_width, total_ele, inpos, lpos, nm, noise=0, srcs=1): 'pots':pots, 'estm_x':k.estm_x, 'est_pot':est_pot, 'est_csd':est_csd, 'noreg_csd':noreg_csd, 'errsy':errsy} np.savez('data_fig4_and_fig13_'+save_as, **vals_to_save) + print(true_csd.shape, est_csd[:,0].shape) RMS_wek[0, i] = np.linalg.norm(true_csd/np.linalg.norm(true_csd) - est_csd[:,0]/np.linalg.norm(est_csd[:,0])) RMS_wek[1, i] = np.linalg.norm(true_csd/np.linalg.norm(true_csd) - est_csd_cv[:,0]/np.linalg.norm(est_csd_cv[:,0])) diff --git a/figures/kCSD_properties/figure_LC.py b/figures/kCSD_properties/figure_LC.py index d64cdf9f..6a782df1 100644 --- a/figures/kCSD_properties/figure_LC.py +++ b/figures/kCSD_properties/figure_LC.py @@ -103,11 +103,11 @@ def make_plots(title, m_norm, m_resi, true_csd, curveseq, ele_y, # os.chdir("./LCurve/LC2") noises = 3 noise_lvl = np.linspace(0, 0.5, noises) -# df = np.load('data_fig4_and_fig13_lc_noise25.0.npz') + #df = np.load('data_fig4_and_fig13_lc_noise25.0.npz') Rs = np.linspace(0.025, 8*0.025, 8) title = ['nazwa_pliku'] save_as = 'noise' -# make_plots(title, df['m_norm'], df['m_resi'], df['true_csd'], -# df['curve_surf'], df['ele_y'], df['pots_n'], -# df['pots'], df['estm_x'], df['est_pot'], df['est_csd'], -# df['noreg_csd'], save_as) \ No newline at end of file + make_plots(title, df['m_norm'], df['m_resi'], df['true_csd'], + df['curve_surf'], df['ele_y'], df['pots_n'], + df['pots'], df['estm_x'], df['est_pot'], df['est_csd'], + df['noreg_csd'], save_as) diff --git a/figures/kCSD_properties/figure_LCandCV.py b/figures/kCSD_properties/figure_LCandCV.py index 953d31a2..95c08534 100644 --- a/figures/kCSD_properties/figure_LCandCV.py +++ b/figures/kCSD_properties/figure_LCandCV.py @@ -23,51 +23,58 @@ def set_axis(ax, x, y, letter=None): def plot_surface(curve_surf, errsy, save_as): fsize = 18 lambdas = np.logspace(-7, -3, 50) - fig = plt.figure(figsize = (20,9), dpi = 300) - gs = gridspec.GridSpec(16, 12, hspace=2, wspace=2) + fig = plt.figure(figsize = (15, 6), dpi = 300) + gs = gridspec.GridSpec(16, 12, hspace=1, wspace=1) ax = plt.subplot(gs[0:16, 0:6]) set_axis(ax, -0.05, 1.05, letter='A') - plt.pcolormesh(lambdas, np.arange(9), curve_surf, - cmap = 'BrBG', vmin = -2, vmax=2) + + plt.pcolormesh(lambdas, np.arange(8), curve_surf, + cmap = 'BrBG', vmin = -3, vmax=3) plt.colorbar() for i,m in enumerate(curve_surf.argmax(axis=1)): - plt.scatter([lambdas[m]], [i+0.5], s=50, color='red', alpha = 0.7) + plt.scatter([lambdas[m]], [i], s=50, color='red', alpha = 0.7) if i==7: - plt.scatter([lambdas[m]], [i+0.5], s=50, color='red', - label = 'Maximum Curvature', alpha = 0.7) + plt.scatter([lambdas[m]], [i], s=50, color='red', + label = 'Maximum \nCurvature', alpha = 0.7) plt.xlim(lambdas[1],lambdas[-1]) plt.title('L-curve regularization', fontsize = fsize) - plt.legend(loc='center', bbox_to_anchor=(0.5, -0.12), ncol=1, + # plt.legend(loc='center', bbox_to_anchor=(0.5, -0.12), ncol=1, + # frameon = False, fontsize = fsize) + plt.legend(loc='upper left', ncol=1, frameon = False, fontsize = fsize) - plt.yticks(np.arange(8)+0.5, [str(x)+'x' for x in range(1,9)]) + plt.yticks(np.arange(8), [str(x)+'x' for x in range(1,9)]) plt.xscale('log') plt.ylabel('Parameter $R$ in electrode distance', fontsize=fsize, labelpad = 15) plt.xlabel('$\lambda$',fontsize=fsize) ax = plt.subplot(gs[0:16, 6:12]) set_axis(ax, -0.05, 1.05, letter='B') - plt.pcolormesh(lambdas, np.arange(9), errsy, cmap = 'Greys') + plt.pcolormesh(lambdas, np.arange(8), errsy, cmap='Greys', vmin=0.01, vmax=0.02) plt.colorbar() for i,m in enumerate(errsy.argmin(axis=1)): - plt.scatter([lambdas[m]], [i+0.5], s=50, color='red', alpha = 0.7) + plt.scatter([lambdas[m]], [i], s=50, color='red', alpha = 0.7) if i==7: - plt.scatter([lambdas[m]], [i+0.5], s=50, color='red', - label = 'Minimum Error', alpha = 0.7) + plt.scatter([lambdas[m]], [i], s=50, color='red', + label = 'Minimum \nError', alpha = 0.7) plt.xlim(lambdas[1],lambdas[-1]) - plt.legend(loc='center', bbox_to_anchor=(0.5, -0.12), ncol=1, + # plt.legend(loc='center', bbox_to_anchor=(0.5, -0.12), ncol=1, + # frameon = False, fontsize = fsize) + plt.legend(loc='upper left', ncol=1, frameon = False, fontsize = fsize) plt.title('Cross-validation regularization', fontsize = fsize) - plt.yticks(np.arange(8)+0.5, [str(x)+'x' for x in range(1,9)]) + plt.yticks(np.arange(8), [str(x)+'x' for x in range(1,9)]) plt.xscale('log') plt.xlabel('$\lambda$', fontsize=fsize) fig.savefig(save_as+'.png') if __name__=='__main__': -# os.chdir("./LCurve/") + os.chdir("./LCurve/") noises = 3 noise_lvl = np.linspace(0, 0.5, noises) -# df = np.load('LC2/data_fig4_and_fig13_lc_noise25.0.npz') + print(os.getcwd()) + df = np.load(os.path.join('LC2', 'data_fig4_and_fig13_LC_noise25.0.npz')) + Rs = np.linspace(0.025, 8*0.025, 8) title = ['nazwa_pliku'] save_as = 'noise' -# plot_surface(df['curve_surf'], df['errsy'], save_as+'surf') - plt.close('all') \ No newline at end of file + plot_surface(df['curve_surf'], df['errsy'], save_as+'surf') + plt.close('all') diff --git a/figures/kCSD_properties/figure_LCandCVperformance.py b/figures/kCSD_properties/figure_LCandCVperformance.py index 7764d422..52578023 100644 --- a/figures/kCSD_properties/figure_LCandCVperformance.py +++ b/figures/kCSD_properties/figure_LCandCVperformance.py @@ -25,10 +25,10 @@ def make_plot_perf(sim_results): lam_lc = sim_results[0, 0] rms_cv = sim_results[1, 2] lam_cv = sim_results[1, 0] - fig = plt.figure(figsize = (9,12), dpi = 300) - widths = [10] - heights = [1, 1] - gs = gridspec.GridSpec(2, 1, height_ratios=heights, width_ratios=widths, + fig = plt.figure(figsize = (12,7), dpi = 300) + widths = [1, 1] + heights = [1] + gs = gridspec.GridSpec(1, 2, height_ratios=heights, width_ratios=widths, hspace=0.45, wspace=0.3) ax1 = plt.subplot(gs[0]) if np.min(rms_cv) < np.min(rms_lc): @@ -50,7 +50,8 @@ def make_plot_perf(sim_results): ax1.spines['right'].set_visible(False) ax1.spines['top'].set_visible(False) set_axis(ax1, -0.05, 1.05, letter='A') - plt.title('Performance of regularization methods') + ax1.legend(loc='upper left', frameon=False) + # plt.title('Performance of regularization methods') '''second plot''' ax2 = plt.subplot(gs[1]) @@ -69,14 +70,15 @@ def make_plot_perf(sim_results): plt.xlabel('Relative Noise Level', labelpad = 15) set_axis(ax2, -0.05, 1.05, letter='B') ht, lh = ax2.get_legend_handles_labels() - fig.legend(ht, lh, loc='lower center', ncol=2, frameon=False) + #fig.legend(ht, lh, loc='upper center', ncol=2, frameon=False) ax2.spines['right'].set_visible(False) ax2.spines['top'].set_visible(False) + ax2.legend(loc='upper left', frameon=False) fig.savefig('stats.png') if __name__=='__main__': -# os.chdir("./LCurve/") + os.chdir("./LCurve/") noises = 9 noise_lvl = np.linspace(0, 0.5, noises) -# sim_results = np.load('sim_results.npy') -# make_plot_perf(sim_results) \ No newline at end of file + sim_results = np.load('sim_results.npy') + make_plot_perf(sim_results) diff --git a/figures/kCSD_properties/figure_properties.py b/figures/kCSD_properties/figure_properties.py index 12be6993..40a7b6e4 100644 --- a/figures/kCSD_properties/figure_properties.py +++ b/figures/kCSD_properties/figure_properties.py @@ -17,3 +17,5 @@ }) +def cm_to_inches(vals): + return [0.393701*ii for ii in vals] diff --git a/figures/kCSD_properties/sources_electrodes.odg b/figures/kCSD_properties/sources_electrodes.odg index 1d0bc3cead098534f693001b6ac82d3f2cbd4231..899c450ac6fbc02625828c985f9e56fb2570c9a8 100644 GIT binary patch literal 22614 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