def plot_trajectory(proj_file, dir_file, show=False): """ Plot optimization trajectory on the plane spanned by given directions.""" assert exists(proj_file), 'Projection file does not exist.' f = h5py.File(proj_file, 'r') fig = plt.figure() plt.plot(f['proj_xcoord'], f['proj_ycoord'], marker='.') plt.tick_params('y', labelsize='x-large') plt.tick_params('x', labelsize='x-large') f.close() if exists(dir_file): f2 = h5py.File(dir_file,'r') if 'explained_variance_ratio_' in f2.keys(): ratio_x = f2['explained_variance_ratio_'][0] ratio_y = f2['explained_variance_ratio_'][1] plt.xlabel('1st PC: %.2f %%' % (ratio_x*100), fontsize='xx-large') plt.ylabel('2nd PC: %.2f %%' % (ratio_y*100), fontsize='xx-large') f2.close() fig.savefig(proj_file + '.pdf', dpi=300, bbox_inches='tight', format='pdf') if show: plt.show()