my_plot.py (2571B)
1 #!/usr/bin/env python3.9 2 3 import numpy as np 4 import sympy as sp 5 import matplotlib.pyplot as plt 6 from scipy.special import gammaincc 7 8 from model import * 9 10 import matplotlib.pylab as pylab 11 params = {'legend.fontsize': 'x-large', 12 'figure.figsize': (15, 5), 13 'axes.labelsize': 'x-large', 14 'axes.titlesize':'x-large', 15 'xtick.labelsize':'x-large', 16 'ytick.labelsize':'x-large'} 17 pylab.rcParams.update(params) 18 19 def my_plot(name, x_data, y_data, p, dp, chi_sq, sigma): 20 21 # for i in range(len(p)): 22 # print(f'{p[i]}\t\\pm {dp[i]}') 23 24 dof = len(x_data) - len(p) 25 p_value = 1 - gammaincc(chi_sq[-1]/2, dof/2) 26 chi_min = chi_sq[-1]/dof 27 28 with open(f'./results/{name}.txt', 'w+') as f: 29 for i in range(len(p)): 30 f.write(f'{round(p[i]*1000, 2)}\t\\pm {round(dp[i]*1000, 2)}\n') 31 32 f.write(f'chi_sq_min_dof = {chi_min}\n') 33 f.write(f'p_value = {p_value}\n') 34 35 x_model = np.linspace(x_data[0], x_data[-1], 500) 36 37 x = sp.symbols('x') 38 la_mod = model(x, *p) 39 la_mod = sp.lambdify(x, la_mod, modules=['numpy', {'Heaviside': np.heaviside}]) 40 y_model = la_mod(x_model) 41 42 plt.figure(figsize=[10, 7]) 43 plt.errorbar(x_data, y_data, yerr=sigma, c='black', fmt='.k', label=f'{name}') 44 plt.plot(x_model, y_model, c='red', label='Fit') 45 46 # p, dp = np.round(p, 5), np.round(dp, 3) 47 48 #plt.annotate(r'$M_{\rho} = $' + f'({p[0]}' + r'$\pm$' + f'{dp[0]}) GeV', (0.2, 40)) 49 #plt.annotate(r'$\Gamma_{\rho} = $' + f'({p[1]}' + r'$\pm$' + f'{dp[1]}) GeV', (0.2, 38)) 50 #plt.annotate(r'$M_{\omega} = $' + f'({p[2]}' + r'$\pm$' + f'{dp[2]}) GeV', (0.2, 36)) 51 #plt.annotate(r'$\Gamma_{\omega} = $' + f'({p[3]}' + r'$\pm$' + f'{dp[3]}) GeV', (0.2, 34)) 52 #plt.annotate(r'$\epsilon_{\omega} = $' + f'({p[4]}' + r'$\pm$' + f'{dp[4]}) GeV', (0.2, 32)) 53 #plt.annotate(r'$a = $' + f'({p[5]}' + r'$\pm$' + f'{dp[5]}) GeV', (0.2, 30)) 54 #plt.annotate(r'$b = $' + f'({p[6]}' + r'$\pm$' + f'{dp[6]}) GeV', (0.2, 28)) 55 #plt.annotate(r'$c = $' + f'({p[7]}' + r'$\pm$' + f'{dp[7]}) GeV', (0.2, 26)) 56 57 plt.legend(loc='best') 58 plt.ylabel(r'$|F_{\pi}^V(s)|^2|$') 59 plt.xlabel(r'$\sqrt{s}$[GeV]') 60 61 plt.savefig(f'./plots/{name}.png') 62 plt.close() 63 64 65 66 #plt.figure(figsize=[10, 7]) 67 #plt.plot(chi_sq/dof, p_value, label=r'$\chi^2_{min}/dof = $' + f'{round(chi_sq[-1]/dof, 3)}') 68 #plt.title(r'$\chi^2$'+f'-{name}') 69 #plt.xlabel(r'$\chi^2/dof$') 70 #plt.ylabel('p-value') 71 #plt.legend(loc='best') 72 73 #plt.savefig(f'./plots/{name}-chisq.png') 74 #plt.close()