How can I make the MarkerIndices automatic?

11 vues (au cours des 30 derniers jours)
Jon
Jon le 22 Mai 2020
Commenté : Jon le 22 Mai 2020
I have an issue with using the MarkerIndices property on a line. I want to selectively highlight a few points by changing the MarkerIndices value, then later restore the markers to all the points. If I add additional points to the line though, they don't have markers, since the MarkerIndices have been manually set. Is there a way to restore the MarkerIndices state to 'automatic' once it's been set manually?
This snippet demonstrates my issue. Create a line, highlight a point, restore the markers to all the points, then add more data to the line. Only the first 10 points end up with markers.
figure
H=plot(rand(1,10),rand(1,10),'ko-');
H.MarkerIndices=5;
drawnow
H.MarkerIndices=1:length(H.YData);
H.XData=[H.XData,rand(1,10)];
H.YData=[H.YData,rand(1,10)];

Réponses (1)

Steven Lord
Steven Lord le 22 Mai 2020
h = plot(1:10, 1:10, 'o-');
% Eliminate half the markers
h.MarkerIndices = 1:2:10;
% Change the number of points. No new markers appear.
v = 1:20;
set(h, 'XData', v, 'YData', v)
% Restore all the markers, old and new
h.MarkerIndices = 1:numel(h.XData);
  1 commentaire
Jon
Jon le 22 Mai 2020
Hi Steven, thank you for your response. This works, but if I add even more points, they won't have markers. If I never touched the MarkerIndices property in the first place, added points would get markers. Is there a way to restore that behavior after modifying MarkerIndices? I'm looking for something like MarkerIndicesMode='auto'.
This shows the issue:
h = plot(1:10, 1:10, 'o-');
% Eliminate half the markers
h.MarkerIndices = 1:2:10;
% Change the number of points. No new markers appear.
v = 1:20;
set(h, 'XData', v, 'YData', v)
% Restore all the markers, old and new
h.MarkerIndices = 1:numel(h.XData);
% Add even more points
v = 1:30;
set(h, 'XData', v, 'YData', v)
% The last 10 points don't have markers without resetting h.MarkerIndices

Connectez-vous pour commenter.

Community Treasure Hunt

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

Start Hunting!

Translated by