plt.ioff() hextent = np.array(bnds) + (-0.1, 0.1, -0.1, 0.1) kws = { 'separate': True, 'source_style': 'hex', 'source_kws': { 'gridsize': 26, 'extent': hextent }, 'unfiltered': True } fitargs = {'force_flip': False, 'try_flip': False, 'fitclass': fit.PolFit} limslist = sf.limitslist(rholimits) data = param_table(e=e, debug=debug) data.index = data.index.droplevel() vdata = read.merge_series(e.pluv_grouper(), e.vel_data()) vtable = pd.merge(vdata, pd.DataFrame(data.rhomin), left_on='group', right_index=True) # TODO: check duplicates vfits = dict() for rhomin in rholimits[:-1]: pipv = read.PipV(data=vtable.query('rhomin=={0}'.format(rhomin))) vfits[rhomin], std, etc = pipv.pickler('v-d_rho_range', pipv.find_fit, **fitargs) fig, axarr = sf.plot_vfits_rho_intervals(dict2tuple(vfits), limslist, **kws) axarr[0].axis(bnds) for ax in axarr:
rhomax * read.RHO_SCALE) ax = axarr[i] datarho = data[data.rhomin == rhomin] #.loc['second'] datarho.plot.scatter(x=d0_col, y='log_nw', c='', ax=axarr[i]) lfit = fit.LinFit(x=datarho[d0_col], y=datarho.log_nw, xname='D_0') lfit.find_fit() lfit.plot(source_style=None, ax=ax) #efit = fit.ExponentialFit(x=datarho.D_0, y=datarho.N_w) #efit.find_fit() #efit.plot(source_style='raw', ax=ax) ax.legend() ax.set_title(limitstr) ax.set_xlabel('') axarr[0].set_ylabel('$log(N_w)$') axarr[1].set_xlabel('$D_0$, mm') axarr[-1].set_title('$\\rho > %s$' % (rhomin * read.RHO_SCALE)) plt.axis([0, 5, 1, 6]) #remove_subplot_gaps(fig, axis='row') return fig, axarr data = param_table(debug=debug) data['log_nw'] = np.log10(data['N_w']) data = sf.apply_rho_intervals(data, limits=rholims) fig, axarr = d0_nw_paper(data, rholimits=rholims) if debug: savepath += '/test' read.ensure_dir(savepath) fig.savefig(path.join(savepath, 'nw_d0_rhoranges.eps')) #fig.savefig(path.join(paperpath, 'nw_d0_rhoranges.eps'))
e = pip2015events() #plt.close('all') plt.ioff() hextent = np.array(bnds)+(-0.1,0.1,-0.1,0.1) kws = {'separate': True, 'source_style': 'hex', 'source_kws': {'gridsize': 26, 'extent': hextent}, 'unfiltered': True} fitargs = {'force_flip': False, 'try_flip': False, 'fitclass': fit.PolFit} limslist=sf.limitslist(rholimits) data = param_table(e=e, debug=debug) data.index = data.index.droplevel() vdata = read.merge_series(e.pluv_grouper(), e.vel_data()) vtable = pd.merge(vdata, pd.DataFrame(data.rhomin), left_on='group', right_index=True) # TODO: check duplicates vfits = dict() for rhomin in rholimits[:-1]: pipv = read.PipV(data=vtable.query('rhomin=={0}'.format(rhomin))) vfits[rhomin], std, etc = pipv.pickler('v-d_rho_range', pipv.find_fit, **fitargs) fig, axarr = sf.plot_vfits_rho_intervals(dict2tuple(vfits), limslist, **kws) axarr[0].axis(bnds) for ax in axarr: ax.tick_params(direction='out', top=False) pc = pd.DataFrame(index=rholimits[:-1], columns=['count_all', 'count_hwfm', 'r_sq']) for rhomin in vfits:
key.plot(ax=ax, **kws) read.rho_scale(ax.yaxis) ax.set_ylabel('$\\rho$, ' + read.RHO_UNITS) ax.set_xlabel('$D_0$, mm') ax.set_xticks((0.5, 1, 2, 3, 4, 5, 6)) plt.legend() return ax, rho_d0, rho_d0_baecc, rho_d0_1415 def mass_dim(rho_d0, b_v=0.2): a_d0, b_d0 = rho_d0.params a_d0 = a_d0/1000*10**b_d0 beta = b_d0 + 3 alpha = np.pi/6*3.67**b_d0*a_d0*gamma(b_v+4)/gamma(b_v+b_d0+4) return fit.PolFit(params=(alpha, beta), xname='D') data_fltr = param_table(debug=debug) figkws = {'dpi': 150, 'figsize': (5,5)} #fig = plt.figure(**figkws) #ax = plot_d0_rho(data) fig_fltr = plt.figure(**figkws) ax_fltr, rho_d0, rho_d0_baecc, rho_d0_1415 = plot_d0_rho(data_fltr) m_d = mass_dim(rho_d0) m_d_baecc = mass_dim(rho_d0_baecc) m_d_1415 = mass_dim(rho_d0_1415) if debug: savepath += '/test' paperpath = path.join(savepath, 'paper') read.ensure_dir(paperpath)
def param_table_filtered_rows(): qstr = QSTR_FILTERED return param_table(query_str=qstr)
d0_col = 'D_0_gamma' #sns.set_context('talk') major_size = 8 set_plot_style(**{'xtick.major.size': major_size, 'ytick.major.size': major_size}) plt.close('all') plt.ioff() kwargs = {'kde': True, 'rug': True, 'kde_kws': {'label': 'KDE'}} savedir = path.join(paths['results'], 'hist') if debug: savedir += '/test' read.ensure_dir(savedir) data = param_table(debug=debug) def kde_peak(data, xlim=(-1,1), n_samples=500): kde = gaussian_kde(data) xs = np.linspace(*xlim, num=n_samples) ys = kde(xs) index = np.argmax(ys) return xs[index], ys[index] def split_hist(data, **kws): data = sf.split_index(data, names=('first', 'second')) return plt.hist([data.loc['first'], data.loc['second']], stacked=True, rwidth=1, **kws)
def param_table_unfiltered(): return param_table(query_str='')
def nw_dmitri(rho, d0): return 10**(5.5-(3.57*(rho/1000)**(1/3)-1)*d0) def nw(rho, d0): return 10**(5.6-(0.403*rho**(1/3)-1.2)*d0) def alpha_fit(): alpha = np.array([.465, .851, 1.301]) rho = np.array([72.7, 134, 243.8]) afit = fit.LinFit(x=rho**(1/3), y=alpha) afit.find_fit() return afit data = param_table() #data['D_0_rho'] = data.D_0_gamma*data.density #ax2 = data.plot.scatter(x='D_0_rho', y='N_w', c='density', logy=True) data['D_0_rho1'] = data.D_0_gamma*data.density**(1/3) #ax3 = data.plot.scatter(x='D_0_rho1', y='N_w', c='density', logy=True) #data['D_0_rho2'] = data.D_0_gamma*(data.density**(1/3)*0.403-1.2) #ax4 = data.plot.scatter(x='D_0_rho2', y='N_w', c='density', logy=True) data['nw_rho'] = nw(data.density, data.D_0_gamma) #ax = data.plot.scatter(x='N_w', y='nw_rho', c='D_0_gamma', logx=True, logy=True) #ax5 = data.plot.scatter(x='D_0_gamma', y='N_w', c='density', logy=True) #ax.set_xlim([data.N_w.min(), data.N_w.max()]) #ax.set_ylim([nw1.min(), nw1.max()]) #ax.set_xlabel('$N_w$') #ax.set_ylabel('$N_w(\\rho)$') #ax.plot([0,1e8],[0, 1e8])
ax.set_xlabel('$D_0$, mm') ax.set_xticks((0.5, 1, 2, 3, 4, 5, 6)) plt.legend() return ax, rho_d0, rho_d0_baecc, rho_d0_1415 def mass_dim(rho_d0, b_v=0.2): a_d0, b_d0 = rho_d0.params a_d0 = a_d0 / 1000 * 10**b_d0 beta = b_d0 + 3 alpha = np.pi / 6 * 3.67**b_d0 * a_d0 * gamma(b_v + 4) / gamma(b_v + b_d0 + 4) return fit.PolFit(params=(alpha, beta), xname='D') data_fltr = param_table(debug=debug) figkws = {'dpi': 150, 'figsize': (5, 5)} #fig = plt.figure(**figkws) #ax = plot_d0_rho(data) fig_fltr = plt.figure(**figkws) ax_fltr, rho_d0, rho_d0_baecc, rho_d0_1415 = plot_d0_rho(data_fltr) m_d = mass_dim(rho_d0) m_d_baecc = mass_dim(rho_d0_baecc) m_d_1415 = mass_dim(rho_d0_1415) if debug: savepath += '/test' paperpath = path.join(savepath, 'paper') read.ensure_dir(paperpath)