2017-06-02 73 views
0

我有以下行:holoviews/geoviews图像范围作为对数

(dataset.redim(WD_spec001=dict(range=(0, 30000))).to(gv.Image, ['longitude', 'latitude'], ['time']) * gf.coastline()) 

但实际上,该范围和色标应该是对数的。在matplotlib我已经完成使用产生“clevs”点阵以下几点:

def _log_clevs(dat_min, dat_max): 
    """ 
    create logorithmic color scale 

    """ 

    if dat_max > 0: 
     dmx = int(np.round(np.log10(dat_max))) + 1 
    else: 
     # dat_max not positive 
     dmx = 1 

    if dat_min > 0: 
     dmn = int(np.round(np.log10(dat_min))) 
    elif dat_min == 0. or np.isnan(dat_min): 
     # hack 
     dmn = dmx - 3 


    # create equally spaced range 
    if dmx == dmn: 
     dmx = dmn + 1 
    clevs = np.logspace(dmn, dmx, 100) 

    return clevs 

有没有办法做到这一点与holoviews/geoviews?

回答

1

HoloViews和GeoViews中的图像元素有一个图形选项logz,它应该让您指定一个对数颜色表。在笔记本上试试这个:

%%opts Image [logz=True] 
(dataset.redim(WD_spec001=dict(range=(0, 30000))).to(gv.Image, 
['longitude', 'latitude'], ['time']) * gf.coastline())