【问题标题】:Prevent the colormap to be rescaled when using datashader to rerender an image as it is zoomed in防止在使用数据着色器重新渲染图像时重新缩放颜色图
【发布时间】:2019-08-11 00:49:02
【问题描述】:

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

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

我希望将颜色图范围固定为整个数组/图像的最小值和最大值(或接近这些值,理想情况下,我将拥有与 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,但结果相似。

【问题讨论】:

    标签: python bokeh holoviews datashader pyviz


    【解决方案1】:

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

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

    我尝试再次查看文档以查看是否在某处提及它。除了简短的mention in the FAQ,在搜索中没有找到任何内容。

    【讨论】:

    • 很高兴你知道了!如果您希望在文档中添加此信息的 PR,我们将不胜感激!
    • 感谢@JamesA.Bednar,我尝试opened a PR
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-18
    • 1970-01-01
    • 2015-07-02
    • 2016-05-05
    • 1970-01-01
    • 2017-11-21
    相关资源
    最近更新 更多