def _data_estimator(data, size=8, n=3, multilevel=False): from cddm.multitau import log_average, merge_multilevel from cddm.avg import denoise if multilevel == False: x, y = log_average(data, size) else: x, y = merge_multilevel(data) #in case we have nans, remove them before denoising, and return only valid data mask = np.isnan(y) mask = np.logical_not(np.all(mask, axis=tuple(range(mask.ndim - 1)))) return x[mask], denoise(y[..., mask], n=n)
err6 = sigma_prime_weighted(w, g, delta, 0, 0) #/n**0.5 #err0 = err0.mean(0) #err1 = err1.mean(0) #err4 = err4.mean(0) ax1 = plt.subplot(121) ax1.set_xscale("log") ax1.set_xlabel(r"$\tau$") ax1.set_title(r"$g(\tau), w(\tau)$ @ $q = {}$".format(K)) ax2 = plt.subplot(122) ax2.set_title(r"$\sigma (\tau)$ @ $q = {}$".format(K)) for binning in (0, 1): x, y = merge_multilevel( multilevel(data_regular[:, 2, i, j, :], binning=binning)) if CROSS: x = x * PERIOD // 2 g = g1(x, i, j) #g = y.mean(0) std = (((y - g)**2).mean(axis=0))**0.5 #ax1.semilogx(x[1:],y[:,1:].mean(0),marker = "o", linestyle = '',fillstyle = "none",label = "$g_R$", color = "k") if binning == BINNING_DATA: ax1.semilogx(x[1:], y[0, 1:], marker="o", linestyle='', fillstyle="none", label="$R$", color="k")
ax = axs[j] ax.semilogx(x[1:], y[1:], "-", label="linear", fillstyle="none") y_multi = multilevel(y, binning=True) x_multi = multilevel(x, binning=True) for i, (x, y) in enumerate(zip(x_multi, y_multi)): ax.semilogx(x[1:], y[1:], marker=MARKERS[i % 6], linestyle="-", label="level {}".format(i)) x, y = merge_multilevel(y_multi) ax.semilogx(x[1:], y[1:], "k", label="log") ax.set_title(TITLES[j].format(KI)) ax.set_xlabel(r"$\tau$") ax.set_ylabel(r"$g$") ax.set_ylim(-0.2, 1) plt.legend() plt.tight_layout() if SAVE_FIGS: plt.savefig("plots/plot_corr_example.pdf") plt.show()