Exemple #1
0
def _mask_X(X, diffs, correlation_threshold=DEFAULT_CORRELATION_THRESHOLD):
     cc, threshold = bin_corrs_from_X(diffs, X, correlation_threshold=
                                                correlation_threshold)
     mask = np.abs(cc) > threshold
     Xm = X[mask]
     logging.debug("Masked shape is %s" % (Xm.shape,))
     return Xm
Exemple #2
0
def plot_correlations(results):

    for result in results:
        pdf = result.pdf
        obs = result.obs

        Qs = iter(obs.meanQ)
        xgrid = pdf.make_xgrid()

        fl = pdf.make_flavors()

        figure, axarr = plt.subplots(len(fl), sharex=True,
                                     sharey=True,
                                     figsize=(8, len(fl)+3))

        for b in result.binlabels:
            Q = next(Qs)
            X = get_X(pdf, Q=Q, xgrid=xgrid, fl=fl, reshape=True)
            values, threshold = bin_corrs_from_X(result._all_vals.ix[b], X)
            ind = 0
            for f, axis in zip(fl, axarr):
                step = len(xgrid)
                current_vals = values[ind:ind+step]
                ind+=step
                line, = axis.plot(xgrid, current_vals)
                stacked = np.array([xgrid, current_vals]).T
                sel_ranges = split_ranges(stacked, abs(current_vals)>threshold,
                             filter_falses=True)
                for arr in sel_ranges:
                    x,y = arr.T
                    axis.plot(x,y, linewidth=3, color=line.get_color())
                    axis.axvspan(np.min(x), np.max(x), color="#eeeeff")
                axis.set_ylim([-1,1])
                axis.set_xscale('log')
                axis.set_ylabel("$%s$"%PDG_PARTONS[f])

                axis.axhline(threshold, c='r', ls='--')
                axis.axhline(-threshold, c='r', ls='--')

        axarr[0].set_title(str(obs) + "\n")
        plt.xlabel("$x$")
        figure.subplots_adjust(hspace=0)
        plt.setp([a.get_xticklabels() for a in figure.axes[:-1]], visible=False)

        yield (obs,pdf), figure