MATLAB: Can I put markers on only some of the points in the plot

customcustomizemarkermarkersMATLABplotpointposition;spacing

I have a plot that has a lot of points. Putting markers on all the points makes the plot too cluttered; instead of a line made of markers I just get a thick line. How can I plot only every other marker, or every third marker, or something like that?

Best Answer

There is no command to plot only every other marker, or every third marker, or every nth marker. However, you can accomplish this by using the following command, assuming you have your X-data stored in XVec and your Y-data stored in YVec:
plot(XVec(1:2:end),YVec(1:2:end), '+')
This command will plot every other point in your data using the + marker. Change the 2 in the statement to a 3 to plot every third point:
plot(XVec(1:3:end),YVec(1:3:end), '+')
or to a 4 to plot every fourth, etc:
plot(XVec(1:4:end),YVec(1:4:end), '+')
To plot a line with every fourth marker present, you can use the following code:
plot(XVec,YVec)
hold on
plot(XVec(1:4:end),YVec(1:4:end), '+')
hold off
Note that since the solid line and markers are different plots, they will be displayed as different items in the legend. A decision can be made to display only one of these items. See the linked solution for a description of how this can be achieved.
In addition, the request for a built-in MATLAB command to do this automatically has been forwarded to our development staff for consideration for a future version of MATLAB.