plotting.py 文件源码

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

项目:ugali 作者: DarkEnergySurvey 项目源码 文件源码
def drawIsochrone(isochrone, **kwargs):
    ax = plt.gca()
    logger.debug(str(isochrone))
    if kwargs.pop('cookie',None):
        # Broad cookie cutter
        defaults = dict(alpha=0.5, color='0.5', zorder=0, 
                        linewidth=15, linestyle='-')
    else:
        # Thin lines
        defaults = dict(color='k', linestyle='-')
    kwargs = dict(defaults.items()+kwargs.items())

    isos = isochrone.isochrones if hasattr(isochrone,'isochrones') else [isochrone]
    for iso in isos:
        iso = copy.deepcopy(iso)
        logger.debug(iso.filename)
        iso.hb_spread = False
        mass_init,mass_pdf,mass_act,mag_1,mag_2 = iso.sample(mass_steps=1e3)
        mag = mag_1 + isochrone.distance_modulus
        color = mag_1 - mag_2

        # Find discontinuities in the color magnitude distributions
        dmag = np.fabs(mag[1:]-mag[:-1])
        dcolor = np.fabs(color[1:]-color[:-1])
        idx = np.where( (dmag>1.0) | (dcolor>0.25))[0]
        # +1 to map from difference array to original array
        mags = np.split(mag,idx+1)
        colors = np.split(color,idx+1)

        for i,(c,m) in enumerate(zip(colors,mags)):
            msg = '%-4i (%g,%g) -- (%g,%g)'%(i,m[0],c[0],m[-1],c[-1])
            logger.debug(msg)
            if i > 0:
                kwargs['label'] = None
            ax.plot(c,m,**kwargs)
    return ax
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号