MATLAB Answers

How to dynamicly change the tick order for xticklabels

3 views (last 30 days)
Katy Weihrich
Katy Weihrich on 28 Apr 2020
Commented: Adam Danz on 28 Apr 2020
I am trying to do a graphic where I compaire multiple groups by creating a scatter plot where the hue of the dot corresponding to the effect size between compairisons. I need to run the compairisons for different features on the data groups, therefore I want to sort the groups dynamicly by the mean for each feature in the graphic.
I labeled the x- and y-axis such as:
yticks([1:25])
yticklabels({'Heel Up','Heel Dw', ...
'Flat Up','Flat Dw','Swing Heel', ...
'Swing Flat', ... .......
});
where 1 = 'Heel Up', 2 = 'Heel Dw', ect.
For the new graph I already changed the order of the plots by creating the variable
label_neworder = [10,12,19,2,23,4,11,15,17,18,9,3,8,21,22,20,1,13,5,16,14,6,7]; % for example
I tried resorting the labels using categorical,
x_tick_labels = categorical(label_neworder,[1:25], ...
{'Heel Up','Heel Dw', ...
'Flat Up','Flat Dw','Swing Heel', ...
'Swing Flat', ... .......
})
but when I try to apply it I only get the error message:
xticklabels(x_tick_labels_cat);
% Error using xticklabels (line 43)
% Specify tick labels as cell array of character vectors, string array, or one of the 'mode', 'auto', or 'manual' options.
I would need to reformat "x_tick_labels", but I cannot quite figure out how to do so.

  0 Comments

Sign in to comment.

Accepted Answer

Adam Danz
Adam Danz on 28 Apr 2020
Edited: Adam Danz on 28 Apr 2020
tickLabels = {'Heel Up','Heel Dw', ...
'Flat Up','Flat Dw','Swing Heel', ...
'Swing Flat', ... .......
};
yticklabels(tickLabels(label_neworder));

  2 Comments

Katy Weihrich
Katy Weihrich on 28 Apr 2020
Now that I am seeing it, it is pretty obvious!
Thank you very much!
Adam Danz
Adam Danz on 28 Apr 2020
That happens to the best of us!
Glad I could help.

Sign in to comment.

More Answers (0)


Translated by