Как ограничить масштабирование минимального и максимального диапазонов в python holoviews? - PullRequest
1 голос
/ 29 сентября 2019

Я использую holoviews для отображения изображения RGB, используя следующую команду (стек [1] ​​- это изображение, которое я хочу отобразить):

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

Отображается нормально, но когда я использую масштабирование колес,Я могу уменьшить масштаб далеко за пределы моего изображения.Есть ли способ ограничить границы моего графика, чтобы он никогда не выходил за границы моих данных / изображения?

1 Ответ

0 голосов
/ 29 сентября 2019

Может быть, есть опция, но вы можете использовать крючок для этого

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