Один из вариантов - использовать недокументированную команду resetplotview
.
С doc resetplotview
:
Только для внутреннего использования.Эта функция может быть удалена в будущем выпуске.
Вызовите эту функцию перед командой xlim
.
figure(1);
x = 0:0.1:6
plot( x, sin(x) ); % Example plot, x axis range [0, 6]
resetplotview( gca, 'InitializeCurrentView' ) % Ensure we can reset the zoom
xlim( [2, 4] ); % 'Zoom' into the x axis range [2, 4]
Это приводит к желаемому результату, когда нажатие кнопки «Сброс к исходному виду» увеличивает диапазон х [0, 6]
, но первоначально показанный диапазон х равен [2, 4]
.
Поскольку эта функция недокументирована, может быть полезно иметь контекст внутренних элементов.Вы можете edit resetplotview
увидеть, где реализована опция 'InitializeCurrentView'
.По сути, он использует setappdata
для определения атрибутов 'matlab_graphics_resetplotview'
, в частности, со свойством XLim
как 'auto'
.Возможно, вы могли бы сделать это вручную, если функция resetplotview
устарела.