在放大图像时使用数据着色器重新渲染图像时防止重新缩放颜色图

Prevent the colormap to be rescaled when using datashader to rerender an image as it is zoomed in

我想使用数据着色器的自动缩减采样和缩放时重新渲染来显示大图像。阅读 holoviews、bokeh 和 datashader 的文档和论坛,据我了解,最好通过 Holoviews 执行此操作,而不是直接使用 datashader 和 bokeh(如果不是这种情况,请告诉我)。

下面的代码非常适合在缩放时重新绘制图像分辨率,并且比渲染完整图像快得多。但是,我似乎无法弄清楚如何避免在图像缩放时重新调整颜色图范围。例如,当 none 的高强度区域在视野内时,放大到其中一个黑色区域最终会使其变亮。

我想将颜色图范围固定为整个 array/image 的最小值和最大值(或接近这些值,理想情况下我将拥有与 matplotlib 中的 vmin 和 vmax 相同的控制)和图像放大时不会更新。我在 regridhv.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,但结果是相似的。

我在 2017 年 this comment 的 Holoviews 问题跟踪器上找到了我的答案。以下作品

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

我再次尝试查看文档以查看是否在某处提到了它。除了简短 mention in the FAQ.

外,在搜索中没有找到任何内容