Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab “设置绘图(轴)视图”;方框“;不影响极限_Matlab_Matlab Figure - Fatal编程技术网

Matlab “设置绘图(轴)视图”;方框“;不影响极限

Matlab “设置绘图(轴)视图”;方框“;不影响极限,matlab,matlab-figure,Matlab,Matlab Figure,我有一个2D绘图,上面有许多数据元素,覆盖了一个很大的区域。虽然所有的数据都是必要的,但我通常对图中的一小部分感兴趣。 我希望通过编程将视图集中在感兴趣的元素上,同时允许使用GUI中的缩放工具((-)快速返回到更广阔的视角 使用set(gca,'xlim',[limitsXOfSmallElement])和set(gca,'ylim',[limitsXOfSmallElement])设置轴限制很容易,这样小元素就可以聚焦,但这使得在不手动将回轴限制重置为原始值的情况下,无法使用GUI(-)缩放工

我有一个2D绘图,上面有许多数据元素,覆盖了一个很大的区域。虽然所有的数据都是必要的,但我通常对图中的一小部分感兴趣。 我希望通过编程将视图集中在感兴趣的元素上,同时允许使用GUI中的缩放工具((-)快速返回到更广阔的视角

使用
set(gca,'xlim',[limitsXOfSmallElement])
set(gca,'ylim',[limitsXOfSmallElement])
设置轴限制很容易,这样小元素就可以聚焦,但这使得在不手动将回轴限制重置为原始值的情况下,无法使用GUI(-)缩放工具返回到常规视图

我的直觉是,这可以通过控制相机属性来解决(
CameraPosition
CameraTarget
和/或
CameraViewAngle
),但当我应用它们时,GUI缩放工具的后期使用会对轴产生奇怪的影响,因为它会改变在图形上的位置和大小


是否有一种很好的方法来设置轴中显示的2D画布片段?

考虑以下示例:

function example_zoom
    %# some plot
    plot(1:10)
    hAx = gca;

    %# save original axis limits
    setappdata(hAx, 'limits',get(gca,{'XLim','YLim'}))

    %# create custom toolbar button
    [X,map] = imread(fullfile(toolboxdir('matlab'),'icons','view_zoom_out.gif'));
    icon = ind2rgb(X,map);
    uipushtool('CData',icon, 'ClickedCallback',{@click_cb,hAx});

    %# zoom
    uiwait(msgbox('Zooming now, click button to reset', 'modal'))
    set(gca, 'XLim',[3 7], 'YLim',[2 9])
    %zoom on
end

function click_cb(o,e, hAx)
    %# restore original axis limits
    limits = getappdata(hAx, 'limits');
    set(hAx, 'XLim',limits{1}, 'YLim',limits{2})
end
其想法是创建自己的,将轴限制恢复为其原始值


我猜
zoom
pan
的正确组合会对你有用吗?你可能是对的,@Dan,但是当我开始在GUI中缩放时,奇怪的副作用真的让我不敢继续尝试这个选项。不管怎样,如果我以后尝试一下,并找到一个解决方案,我会把它贴在这里作为参考。效果很好。这是一种变通方法,但没有负面影响:D