MATLAB: MATLAB : user choose the limits of the xaxis

matlab plot

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,

Best Answer

  • 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!