2017-06-02 21 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())