コード例 #1
0
def draw_phase(testh5_phases, h5key, train_target, ID_crystal, definition):
        # ****** load the h5 file	
        print('testh5_phases[0] :  ', testh5_phases[0])
        trained_df_phase2 = pd.read_hdf(testh5_phases[0], h5key_phases[0])
        trained_df_phase3 = pd.read_hdf(testh5_phases[1], h5key_phases[1])

        Phi1, Phi2,  Phi_c, Theta1, Theta2, Theta_c = getCrystalPhiAndTheta(ID_crystal, definition)

        if train_target == 'phi':
            trained_df_phase2['res_rec'] = trained_df_phase2.phi    - trained_df_phase2.mcPhi
            trained_df_phase2['res_pre'] = trained_df_phase2.prePhi - trained_df_phase2.mcPhi
            trained_df_phase3['res_rec'] = trained_df_phase3.phi    - trained_df_phase3.mcPhi
            trained_df_phase3['res_pre'] = trained_df_phase3.prePhi - trained_df_phase3.mcPhi
            mc_col  = 'mcPhi'
            rec_col = 'phi'
            pre_col = 'prePhi'
            angle1 = Phi1
            angle2 = Phi2
            angle_c = Phi_c
            Range_Cry = [Phi1*0.99,Phi2*1.01]
            Range = [-3.2, 3.2]
        elif train_target == 'theta':
            trained_df_phase2['res_rec'] = trained_df_phase2.theta    - trained_df_phase2.mcTheta
            trained_df_phase2['res_pre'] = trained_df_phase2.preTheta - trained_df_phase2.mcTheta
            trained_df_phase3['res_rec'] = trained_df_phase3.theta    - trained_df_phase3.mcTheta
            trained_df_phase3['res_pre'] = trained_df_phase3.preTheta - trained_df_phase3.mcTheta
            mc_col  = 'mcTheta'
            rec_col = 'theta'
            pre_col = 'preTheta'
            angle1 = Theta1
            angle2 = Theta2
            angle_c = Theta_c
            Range_Cry = [Theta1*0.99,Theta2*1.01]
            Range = [0.4, 2.4]
        else:
            print("Wrong train target!")

        print(trained_df_phase2[0:10])
        
        trained_df_sub_phase2 = trained_df_phase2[(trained_df_phase2.mcPhi>=Phi1)&(trained_df_phase2.mcPhi<=Phi2)&(trained_df_phase2.mcTheta>=Theta1)&(trained_df_phase2.mcTheta<=Theta2)]
        trained_df_sub_phase3 = trained_df_phase3[(trained_df_phase3.mcPhi>=Phi1)&(trained_df_phase3.mcPhi<=Phi2)&(trained_df_phase3.mcTheta>=Theta1)&(trained_df_phase3.mcTheta<=Theta2)]
        print(trained_df_sub_phase2[0:10])

        plt.hist(trained_df_sub_phase2.res_pre, bins=50, range=[-0.03, 0.03], alpha=1.0, linewidth=1, fill=False, histtype='step', label = 'Phase 2', normed = 100)
        plt.hist(trained_df_sub_phase3.res_pre, bins=50, range=[-0.03, 0.03], alpha=1.0, linewidth=1, fill=False, histtype='step', label = 'Phase 3', normed = 100)
        legend = plt.legend(loc="best")#(loc="best")
        plt.xlabel(r'$' + '\\' + train_target + '_{NN}$ - $' + '\\'+ train_target +'_{truth}$')
        plt.ylabel(r'')
        frame = legend.get_frame()
        frame.set_facecolor('none') # 璁剧疆鍥句緥legend鑳屾櫙閫忔槑
        plt.title('')	
        plt.grid(True, alpha=0.8)
        plt.savefig(trained_dist_res_c_phases, dpi=300)

        plt.figure() 
        plt.hist(trained_df_sub_phase2.preTheta, bins=50, range=Range_Cry, alpha=1.0, linewidth=1, fill=False, histtype='step', label = 'Phase 2', normed = 100)
        plt.hist(trained_df_sub_phase3.preTheta, bins=50, range=Range_Cry, alpha=1.0, linewidth=1, fill=False, histtype='step', label = 'Phase 3', normed = 100)
        legend = plt.legend(loc="best")#(loc="best")
        plt.xlabel(r'$' + '\\' + train_target + '_{NN}$')
        plt.ylabel(r'')
        frame = legend.get_frame()
        frame.set_facecolor('none') # 璁剧疆鍥句緥legend鑳屾櫙閫忔槑
        plt.title('')	
        plt.grid(True, alpha=0.8)
        plt.savefig(trained_dist_c_phases, dpi=300)

        plt.show()
コード例 #2
0
def draw_result(testh5, h5key, train_target, ID_crystal, definition):
        # ****** load the h5 file	
        trained_df = pd.read_hdf(testh5, h5key)

        Phi1, Phi2,  Phi_c, Theta1, Theta2, Theta_c = getCrystalPhiAndTheta(ID_crystal, definition)
        print("Phi1:  ", Phi1, "  Phi2:  ", Phi2)
        print("Theta1:  ", Theta1, "  Theta2:  ", Theta2)

        if train_target == 'phi':
            trained_df['res_rec'] = trained_df.phi-trained_df.mcPhi
            trained_df['res_pre'] = trained_df.prePhi-trained_df.mcPhi
            mc_col  = 'mcPhi'
            rec_col = 'phi'
            pre_col = 'prePhi'
            angle1 = Phi1
            angle2 = Phi2
            angle_c = Phi_c
            Range_Cry = [Phi1*0.99,Phi2*1.01]
            Range = [-3.2, 3.2]
        elif train_target == 'theta':
            trained_df['res_rec'] = trained_df.theta-trained_df.mcTheta
            trained_df['res_pre'] = trained_df.preTheta-trained_df.mcTheta
            mc_col  = 'mcTheta'
            rec_col = 'theta'
            pre_col = 'preTheta'
            angle1 = Theta1
            angle2 = Theta2
            angle_c = Theta_c
            Range_Cry = [Theta1*0.99,Theta2*1.01]
            Range = [0.4, 2.4]
        else:
            print("Wrong train target!")

        print(trained_df[0:10])
        # fig1 = plt.figure() 
        # plt.style.use('ggplot')
        
        col_list = [rec_col,pre_col,mc_col]	
        trained_df_sub = trained_df[col_list][(trained_df.mcPhi>=Phi1)&(trained_df.mcPhi<=Phi2)&(trained_df.mcTheta>=Theta1)&(trained_df.mcTheta<=Theta2)]

        trained_df_sub.plot.hist(bins=50, range=Range_Cry, alpha=1.0, linewidth=1, fill=False, histtype='step')
        legend = plt.legend(loc="best", labels=(r'$\theta_{rec}$', r'$\theta_{NN}$', r'$\theta_{Truth}$'))#(loc="best")
        plt.plot([angle1, angle1],[0, 50], 'k--')
        plt.text(angle1, 0, 'A', fontdict={'size': 10, 'color':  'blue'})
        plt.plot([angle2, angle2],[0, 50], 'k--')
        plt.text(angle2, 0, 'B', fontdict={'size': 10, 'color':  'blue'})
        plt.plot([angle_c, angle_c],[0, 50], 'k--')
        plt.text(angle_c, 0, 'C', fontdict={'size': 10, 'color':  'blue'})
        plt.xlabel(r'$' + '\\'+ train_target + '$')
        plt.ylabel(r'')
        frame = legend.get_frame()
        frame.set_facecolor('none') # 璁剧疆鍥句緥legend鑳屾櫙閫忔槑
        plt.title('')	
        plt.grid(True, alpha=0.8)
        plt.savefig(trained_dist_c, dpi=300)

	
        # definitions for the axes
        left, width    = 0.1, 0.65
        bottom, height = 0.1, 0.65
        bottom_h = left_h = left + width + 0.02
        
        rect_scatter = [left,   bottom,   width, height]
        rect_histx   = [left,   bottom_h, width, 0.2]
        rect_histy   = [left_h, bottom,   0.2,   height]

        	
        fig1 = plt.figure() 
        axScatter = plt.axes(rect_scatter, xlabel=r'$'+ '\\' + train_target  + '_{rec}$ [rad]', ylabel=r'$'+ '\\' + train_target + '_{Truth}$ [rad]')
        axHistx = plt.axes(rect_histx)
        axHisty = plt.axes(rect_histy)
        
        # no labels
        nullfmt = NullFormatter()         # no labels	
        axHistx.xaxis.set_major_formatter(nullfmt)
        axHisty.yaxis.set_major_formatter(nullfmt)
        # the 2d histgram plot	
        axScatter.hist2d(trained_df_sub[rec_col], trained_df_sub[mc_col],(50,50), range=[Range_Cry, Range_Cry],cmap = 'PuBu')
        axScatter.grid(True, alpha=0.8)
        
        axHistx.hist(trained_df_sub[rec_col], bins=50, range=Range_Cry, alpha=1.0, linewidth=1, fill=False, histtype='step') 	
        axHisty.hist(trained_df_sub[mc_col], bins=50, range=Range_Cry, alpha=1.0, linewidth=1, fill=False, histtype='step', orientation='horizontal') 	
        axHistx.grid(True, alpha=0.8)
        axHisty.grid(True, alpha=0.8)
	     
        axHistx.set_xlim(axScatter.get_xlim())
        axHisty.set_ylim(axScatter.get_ylim())
        plt.savefig(trained_dist_c_RecVsMC, dpi=300)


        fig2 = plt.figure() 
        axScatter = plt.axes(rect_scatter, xlabel=r'$'+ '\\' + train_target  + '_{NN}$ [rad]', ylabel=r'$'+ '\\' + train_target + '_{Truth}$ [rad]')
        axHistx = plt.axes(rect_histx)
        axHisty = plt.axes(rect_histy)
        # no labels
        nullfmt = NullFormatter()         # no labels	
        axHistx.xaxis.set_major_formatter(nullfmt)
        axHisty.yaxis.set_major_formatter(nullfmt)
        # the 2d histgram plot	
        current_cmap = plt.cm.get_cmap('PuBu')
        current_cmap.set_bad(color='blue')
        current_cmap.set_under(color='white', alpha=1.0)
        axScatter.hist2d(trained_df_sub[pre_col],trained_df_sub[mc_col],(50,50), range = [Range_Cry, Range_Cry], cmap = current_cmap)
        axScatter.grid(True, alpha=0.8)
        
        axHistx.hist(trained_df_sub[pre_col], bins=50, range=Range_Cry, alpha=1.0, linewidth=1, fill=False, histtype='step') 	
        axHisty.hist(trained_df_sub[mc_col], bins=50, range=Range_Cry, alpha=1.0, linewidth=1, fill=False, histtype='step', orientation='horizontal') 	
        axHistx.grid(True, alpha=0.8)
        axHisty.grid(True, alpha=0.8)
	     
        axHistx.set_xlim(axScatter.get_xlim())
        axHisty.set_ylim(axScatter.get_ylim())
        plt.savefig(trained_dist_c_PreVsMC, dpi=300)

        trained_df[col_list].plot.hist(bins=288, range = Range, alpha=1., linewidth=0.6, fill=False, histtype='step')
        plt.xlabel(r'$'+'\\'+ train_target + '$')
        plt.ylabel(r'')
        legend = plt.legend(loc="best", labels=(r'$\theta_{rec}$', r'$\theta_{NN}$', r'$\theta_{Truth}$'))
        frame = legend.get_frame()
        frame.set_facecolor('none') # 璁剧疆鍥句緥legend鑳屾櫙閫忔槑
        plt.title('')	
        plt.grid(True, alpha=0.8)
        plt.savefig(trained_dist, dpi=300)

        trained_df[['res_rec', 'res_pre']].plot.hist(bins=200, range=[-0.03, 0.03], alpha=1.0, fill=False, histtype='step')
        plt.xlabel(r'$' + '\\' + train_target + '$ - $' + '\\'+ train_target +'_{truth}$')
        plt.ylabel(r'')
        plt.legend(loc = 'best', labels=('res_rec', 'res_NN'))
        plt.grid(True, alpha=0.8)
        plt.savefig(trained_dist_res, dpi=300)

        trained_df[['res_rec', 'res_pre']][(trained_df.mcPhi>=Phi1)&(trained_df.mcPhi<=Phi2)&(trained_df.mcTheta>=Theta1)&(trained_df.mcTheta<=Theta2)].plot.hist(bins = 50, range=[-0.03, 0.03], alpha=1.0, fill=False, histtype='step')
        plt.xlabel(r'$' + '\\'+ train_target + '$- $'+'\\'+train_target+'_{truth}$')
        plt.ylabel(r'')
        plt.legend(loc = 'best', labels=('res_rec', 'res_NN'))
        plt.grid(True, alpha=0.8)
        plt.savefig(trained_dist_res_c, dpi=300)
        
        plt.show()