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())