how to plot the number of each run/plot in a scatterplot

1 view (last 30 days)
Johannes Köbele
Johannes Köbele on 9 Aug 2020
Answered: Alan Moses on 12 Aug 2020
tried to realize the problem by using annotations, but the programm overwrites and keeps the number of the loop-variable zas in the plot. This produces a "black numberball". Is it possible to delete the privious number?
figure(1)
v = VideoWriter('testvideo1.avi');
open(v);
for zas=1:Schritte
plot([untere_Grenze untere_Grenze],[ Grenze untere_Grenze], 'black'); % Gerade
title('Stickstoffgenerator')
hold on
plot([Grenze untere_Grenze],[untere_Grenze untere_Grenze], 'black'); % Gerade
hold on
plot([Grenze Grenze],[Grenze untere_Grenze], 'black');
hold on
plot([untere_Grenze Grenze],[Grenze Grenze], 'black');
hold on
plot([0 0],[untere_Grenze Grenze], 'magenta'); % Membran
hold on
txt={'N2 sind um den Faktor X und O2 sind um den Faktor Y vergrößert'};
text(1.3,1.5, 'Stickstoff', 'HorizontalAlignment','left', 'Color', 'r')
text(1.3,1.7, 'Sauerstoff', 'HorizontalAlignment','left', 'Color', 'b')
a=annotation('textbox',[.6 .8 .7 .2],'String',txt,'EdgeColor','none');
numbzas=annotation('textbox',[.1 .8 .7 .2],'String',zas,'EdgeColor','none'); % used annotation !!!
a.FontSize=5.4;
for zp=1:2:(2*Anzahl_mol)
xlim([untere_Grenze+3/10*untere_Grenze Grenze+3/10*Grenze])
ylim([untere_Grenze+3/10*untere_Grenze Grenze+3/10*Grenze])
scatter(Vector_Lage(zp,zas),Vector_Lage(zp+1,zas),350*R,'filled','red')%,'markerfacecolor','red')
hold on
end
for zp=(2*Anzahl_mol)+1:2:(2*Gesamt_Mol)
xlim([untere_Grenze+3/10*untere_Grenze Grenze+3/10*Grenze])
ylim([untere_Grenze+3/10*untere_Grenze Grenze+3/10*Grenze])
scatter(Vector_Lage(zp,zas),Vector_Lage(zp+1,zas),200*R2,'filled', 'blue')%,'markerfacecolor','red')
hold on
end
pause(.005)
frame =getframe(gcf);
writeVideo(v,frame);
hold off
end
close(v);
  2 Comments
Johannes Köbele
Johannes Köbele on 9 Aug 2020
The mentioned "black numberball" is in the top left corner. I hope you can open the file and thanks a lot!

Sign in to comment.

Answers (1)

Alan Moses
Alan Moses on 12 Aug 2020
Hi,
Yes, it is possible to modify the number of each run. Initialize the annotation outside the loop and change the text inside the loop. Please try the following method:
txt = '';
numbzas=annotation('textbox',[.1 .8 .7 .2],'String',txt,'EdgeColor','none')
for zas=1:Schritte
txt = sprintf('Run number: %d ',zas);
set(numbzas,'String',txt)
end
Hope this helps!

Products


Release

R2019a

Community Treasure Hunt

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

Start Hunting!