Запретить изменение масштаба цветовой карты при использовании datashader для повторной визуализации изображения при его увеличении.

Я хочу использовать автоматическое понижение дискретизации и повторную отрисовку datashader при масштабировании для отображения больших изображений. Читая документы и форумы по головью, боке и даташадеру, я понимаю, что предпочтительнее делать это через Holoviews, а не напрямую с даташадером и боке (дайте мне знать, если это не так).

Приведенный ниже код отлично подходит для перерисовки разрешения изображения при масштабировании и намного быстрее, чем рендеринг полных изображений. Однако я не могу понять, как избежать изменения масштаба диапазона цветовой карты при увеличении изображения. Например, увеличение одной из черных областей в конечном итоге сделает ее такой же яркой, когда ни одна из областей с высокой интенсивностью не находится в пределах видимости.

Я хотел бы, чтобы диапазон цветовой карты фиксировался как min и max (или близко к этим значениям, в идеале я бы имел тот же контроль, что и с vmin и vmax в matplotlib) для всего массива / изображения и не обновлялся при увеличении изображения дюйм. Я не вижу никаких параметров, управляющих этим ни в regrid, ни в hv.Image, возможно ли этого достичь?

import holoviews as hv
from holoviews.operation.datashader import regrid
from skimage import data


hv.extension('bokeh')

im = data.coins()
hv_im = hv.Image(im).opts(active_tools=['wheel_zoom'])
regrid(hv_im)

Я также пробовал использовать datashade вместо regrid, но результаты были аналогичными.


person joelostblom    schedule 11.08.2019    source источник


Ответы (1)


Я нашел свой ответ в этом комментарии от 2017 года о системе отслеживания проблем Holoviews . Следующие работы

regrid(hv_im).opts(clim=(im.min(), im.max()))

Я попытался просмотреть документы еще раз, чтобы узнать, не упоминалось ли это где-нибудь. Не нашел ничего в поиске, кроме краткого упоминания в FAQ.

person joelostblom    schedule 11.08.2019
comment
Рад, что ты это понял! Мы будем очень признательны за PR, чтобы добавить эту информацию там, где вы ожидали увидеть ее в документации! - person James A. Bednar; 12.08.2019
comment
Спасибо @ JamesA.Bednar, я открыл PR с попытки. - person joelostblom; 16.08.2019