Create a legend according to the colors of a scatter plot

15 views (last 30 days)
RAFFAELE MAGLIONE on 19 May 2022
Commented: Walter Roberson on 23 May 2022
Hi, I have the gps coordinates (xCG and yCG) of the trajectories in a circuit of different drivers, what I would like to do is represent these colored trajectories based on the gear engaged which is saved in an NGear vector. This I did with a scatter plot like below:
scatter(xCG,yCG,10,NGear,'filled');
Now I want to create a legend like this:
legend('Gear 1','Gear 2','Gear 3','Gear 4','Gear 5','Neutral');
But clearly I would like the color in the legend to match the color in the plot. The problem is that NGear does not always contain all five gears, because for example the 5th gear is not put in one lap, this then changes from driver to driver.
So, my question is, there is a way to fix 6 colors accorting to that labels in the legend and than reproduce the same colors in the plot according to the gear engaged?
Thanks.
5 CommentsShowHide 4 older comments
RAFFAELE MAGLIONE on 22 May 2022
I solved it by creating a 'Color' vector which for each row contains a triple RGB based on the gear engaged, and then plots 6 NaN, one for each gear, with the color chosen for that gear, to make the legend.

Sign in to comment.

Answers (1)

the cyclist on 22 May 2022
Unless I have misunderstood your question, you should be able to do this using the gscatter command. The legend will be tied to the group (i.e. the gear), which also drives the color.
1 CommentShowHide None
Walter Roberson on 23 May 2022
This sounds like a good approach for the case where the user NGear variable is a gear index, rather than being a color array directly.

Sign in to comment.

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by