MATLAB : user choose the limits of the xaxis

1 view (last 30 days)
Hello,
I have a graph in a figure and I would like to put some buttons to allow the user to choose the beginning of xaxis and the end.
For example, if my x axis is 1:1:10. And the user choose xmin=2 and xmax=6. I would like to plot only this part. After, with a button reset, all the courb will be plot again.
How can I do that ?
Thank you in advance,
Best regards,

Accepted Answer

Brendan Hamm
Brendan Hamm on 31 Mar 2015
Edited: Brendan Hamm on 31 Mar 2015
The following code creates a plot of the input data. It has 2 text boxes which are editable and upon pushing the 'Update' button will change the XLim property of the axes.
function btnUpdate(x,y)
f = figure;
a = axes('Position',[0.075 0.25 0.85 0.65]);
p = plot(x,y);
lwLim = uicontrol(f,'Style','edit',...
'Units','Normalized','Position',[0.20 0.1 0.2 0.05]);
lwTxt = uicontrol(f,'Style','text',...
'Units','Normalized','Position',[0.10 0.09 0.1 0.05],...
'String','xMin:');
upLim = uicontrol(f,'Style','edit',...
'Units','Normalized','Position',[0.60 0.1 0.2 0.05]);
upTxt = uicontrol(f,'Style','text',...
'Units','Normalized','Position',[0.50 0.09 0.1 0.05],...
'String','xMax:');
btn = uicontrol(f,'Style','pushbutton',...
'Units','Normalized','Position',[0.85 0.05 0.1 0.05],...
'String','Update','Callback',@btnCallback);
function btnCallback(src,evt)
a.XLim = [str2num(lwLim.String) str2num(upLim.String)];
end
end
For a sample call:
x = -3*pi:pi/50:3*pi;
y = sin(x);
btnUpdate(x,y);
Play with the axes and have fun!
  1 Comment
Brendan Hamm
Brendan Hamm on 31 Mar 2015
I should point out in versions prior to 2014b the callback function line should read:
set(a,'XLim',[str2num(lwLim.String) str2num(upLim.String)]);

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!