plotting_scripts.py 文件源码

python
阅读 22 收藏 0 点赞 0 评论 0

项目:flexCE 作者: bretthandrews 项目源码 文件源码
def plot_rc_alpha(ax, snr150=False):
        nbins_x = 30
        nbins_y = 40
        ind = indrc
        if snr150:
            ind = ind_snr150
        H, xedges, yedges = np.histogram2d(metals[ind], alphafe[ind],
                                           bins=(nbins_x, nbins_y), normed=True)
        x_bin_sizes = (xedges[1:] - xedges[:-1]).reshape((1, nbins_x))
        y_bin_sizes = (yedges[1:] - yedges[:-1]).reshape((nbins_y, 1))
        pdf = (H * np.multiply(x_bin_sizes, y_bin_sizes).T)
        sig05 = optimize.brentq(find_confidence_interval, 0., 1., args=(pdf, 0.38))
        sig1 = optimize.brentq(find_confidence_interval, 0., 1., args=(pdf, 0.68))
        sig2 = optimize.brentq(find_confidence_interval, 0., 1., args=(pdf, 0.95))
        sig3 = optimize.brentq(find_confidence_interval, 0., 1., args=(pdf, 0.99))
        levels = [sig1, sig05, 1.]
        X = 0.5 * (xedges[1:] + xedges[:-1])
        Y = 0.5 * (yedges[1:] + yedges[:-1])
        Z = pdf.T
        ax.contourf(X, Y, Z, levels=levels, origin='lower',
                    colors=('darkgray', 'gray'), zorder=9)
        ax.contour(X, Y, Z, levels=[levels[0], levels[1]], origin='lower',
                   colors='k', zorder=10)
        for i in range(nbins_x):
            for j in range(nbins_y):
                if Z[j, i] <= sig1 * 1.2:
                    ind_tmp0 = np.where(
                        (metals >= xedges[i]) & (metals < xedges[i+1]) &
                        (alphafe >= yedges[j]) & (alphafe < yedges[j+1]))[0]
                    ind_tmp = np.intersect1d(ind, ind_tmp0)
                    if len(ind_tmp > 0):
                        ax.scatter(metals[ind_tmp], alphafe[ind_tmp], c='k', s=5)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号