有没有一种简单的方法来获得自定义缩放的绘图轴?
例如,semilogy函数提供{x,log10(y)}缩放,使得可以自动缩放和刻度线和标签自动调整。我希望使用{x,asinh(2 * y)}缩放来实现同样的效果。解决方案:
plot (x, asinh (2*y));
set (gca, 'YTickLabel', num2str (sinh (get (gca, 'YTick')(:)) / 2, '%g'))
这段代码适用于“静态”图,但我希望在缩放时刻度标签能够自动调整...
有没有一种简单的方法来获得自定义缩放的绘图轴?
例如,semilogy函数提供{x,log10(y)}缩放,使得可以自动缩放和刻度线和标签自动调整。我希望使用{x,asinh(2 * y)}缩放来实现同样的效果。解决方案:
plot (x, asinh (2*y));
set (gca, 'YTickLabel', num2str (sinh (get (gca, 'YTick')(:)) / 2, '%g'))
这段代码适用于“静态”图,但我希望在缩放时刻度标签能够自动调整...
function applyCustomScalingWhenZooming
%some data
x=1:1/1000:100;
y=1:1/1000:100;
%figure
figure;
plot (x, asinh (2*y));
set (gca, 'YTickLabel', ...
num2str ((sinh (get (gca, 'YTick')) / 2)(:), '%g')); %initial format
%defines callback when zoom action
h = zoom; %define handle for 'zoom'
%action to be called right after zooming
set(h,'ActionPostCallback', {@mypostcallback});
function mypostcallback(obj,event_obj)
%format function
set (gca, 'YTickLabel', ...
num2str ((sinh (get (gca, 'YTick')) / 2)(:), '%g'));