Efficiently setting lower axis limit

조회 수: 89 (최근 30일)
Omar Mian
Omar Mian 2012년 4월 12일
답변: Lucademicus 2019년 1월 23일
I would like to set the lower axis limit and leave the upper limit at the auto value (rather than specifcy the upper limit myself). At the moment I do this to set the lower limit at zero:
xlim_curr = get(gca,'xlim');
xlim_curr(1) = 0;
set(gca,'xlim',xlim_curr)
Is it possible to do this with a single line of code?
Thanks

채택된 답변

Jan
Jan 2012년 4월 12일
One line:
set(gca, 'XLim', [0, get(gca, 'XLim') * [0; 1]])
Or without assuming that the lower limit is 0:
set(gca, 'XLim', get(gca, 'XLim') .* [0, 1] + [lowLimit, 0])
But your three lines are easier to read and faster to debug.

추가 답변 (3개)

onewhaleid
onewhaleid 2018년 1월 2일
편집: onewhaleid 2018년 1월 2일
I use the xlim function. When called with no arguments, it returns the current limits:
xlim([0, max(xlim)])

Matt Kindig
Matt Kindig 2012년 4월 12일
You could do it in two lines:
xlim_curr = get(gca,'xlim');
set(gca, 'xlim', [0 xlim_curr(2)]);
I've tried to do exactly this before (fix one axis limit and allow the other to auto-scale), and could not figure out a better way.

Lucademicus
Lucademicus 2019년 1월 23일
From the documentation of r2018b:
'Create a surface plot and show only y values greater than 0. Specify the minimum y-axis limit as 0 and let MATLAB choose the maximum limit.'
[X,Y,Z] = peaks;
surf(X,Y,Z)
ylim([0 inf])

카테고리

Help CenterFile Exchange에서 Graphics Object Properties에 대해 자세히 알아보기

태그

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by