user3446867
user3446867

Reputation: 79

Hold on only the axis, not the data

I want my graph to fixed axes and also plot the data one by one. Everything is already known, however if i use hold off to remove the first set of data, it also forgets the limits on the axes and automatically assigns new limits for the second set of data. Is it somehow possible to keep the axes the same for each time a separate data piece is plotted in the same figure?

code for now is:

figure(4)
grid on 
axis([xL yL zL])
for j = 1:n     % n is amount of data sets
    for i = 1:2 % two items drawn per data set
        *plot data*
        hold on
    end

    %This part has to be done every iteration again in order to make it work now
    axis([xL yL zL])  
    xlabel = ...
    ylabel
    zlabel
    title

pause(tstop)
hold off
end

after some searching the only relevant topic i found was; Matlab: Plot a subplot with hold on and hold off in a loop without always calling xlabel, ylabel, xlim, etc However i do not understand it at all. It uses a parent figure, replacechildren, nextplot and such which i am not familiar with and also cant find much information about.

Upvotes: 0

Views: 846

Answers (1)

Luis Mendo
Luis Mendo

Reputation: 112659

Here's an example that can be easily adapted to your needs:

xlim([0 10]) %// set x-axis limits
ylim([0 10]) %// set y-axis limits
set(gca,'nextplot','replacechildren') %// prevent axis limits from changing with
%// each new plot

plot(3:8,3:8); %// note axis limits are kept as [0 10]
pause(1)
plot(5:7,5:7); %// note axis limits are kept as [0 10]

Upvotes: 1

Related Questions