如何在python holoviews中限制缩放的最小和最大范围?

问题描述 投票:1回答:1

我正在使用全息视图通过以下命令显示RGB图片(stack [1]是我要显示的图像:]

pix = hv.RGB(stack[1]).opts(
    xaxis=None, 
    yaxis=None,
    tools=['wheel_zoom','pan'],
    default_tools=[],
    active_tools=['wheel_zoom','pan']
)

它显示的很好,但是当我使用滚轮缩放时,我可以缩小到超出图像极限的程度。有没有一种方法可以限制绘图范围,使其永远不会超出数据/图像的边界?

python zoom holoviews
1个回答
0
投票

可能有一个选项,但您可以为此使用钩子

import holoviews as hv
hv.extension('bokeh')
import numpy as np
from functools import partial
def bounds_hook(plot, elem, xbounds=None, ybounds=None):
    x_range = plot.handles['plot'].x_range
    y_range = plot.handles['plot'].y_range
    if xbounds is not None:
        x_range.bounds = xbounds
    else:
        x_range.bounds = x_range.start, x_range.end 
    if ybounds is not None:
        y_range.bounds = ybounds
    else:
        y_range.bounds = y_range.start, y_range.end 
(hv.Image(np.random.rand(100,100)).opts(hooks=[bounds_hook]) +
hv.Image(np.random.rand(100,100)).opts(hooks=[partial(bounds_hook, xbounds=(-1, 1), ybounds=(-1,1))], axiswise=True)) 
© www.soinside.com 2019 - 2024. All rights reserved.