A way to plot legens for better performance?

5 views (last 30 days)
William
William on 17 Sep 2011
Hello all, I am plotting data in a for() loop such that the data displays as a movie.
When I include plotting the legend, the plot times are considerable slower and the whole plot flashes blank each time the legend is plotted.
Is there a better way to do this. I am on a MacBook Pro and I think I have read elsewhere that mac version of MatLab features slow plots.
code - the legend plots are on subplot 3 and 4:
for i = 1:1:length(Y)
ti = time(i);
figure(18);
clf;
subplot(4,1,1);
plot(Y(1,i),solution_heigth(i),'o','MarkerSize',15);
hold on
plot(Y(1,i),-epsilon,'o','MarkerSize',15);
plot(Y(1,i),-epsilon,'x','MarkerSize',15);
text(Y(1,i),-epsilon*.95,['pos = ',num2str(Y(1,i)),' vel = ',...
num2str(Y(2,i))]);
plot(x,epsilon*cos(x-Ft(i)));
title([num2str(ti),' square wave, delta = 2.9, omega = pi']);
subplot(4,1,2)
plot(Y(1,1:i),Y(2,1:i));
hold on
title('phase space');
xlabel('x');
ylabel('dx/dt');
drawnow
subplot(4,1,3)
plot(time(1:i),Y(1,1:i),time(1:i),Y(2,1:i));
hold on
legend('position','velocity');
title('x')
subplot(4,1,4)
plot(time(1:i),orbitEnergy(1,1:i),time(1:i),orbitEnergy(2,1:i),...
time(1:i),orbitEnergy(3,1:i));
hold on
legend('kinetic','potential','total');
title('energy');
drawnow
end

Answers (0)

Community Treasure Hunt

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

Start Hunting!