Plotting with categorical data

Plotting a bar chart with a categorical vector on the x-axis and a double vector on the y-axis.
The resulting bar chart is alphabetically arranged (by default) by the categorical vector on the x-axis.
How does one arrange the bar chart with highest to lowest values from the double vector on the y-axis ?
R, Shaun

 采纳的回答

Based on the help for the bar plot function with categoricals the solution is possibly to use the reordercats function.
I found this to be the way to do it
workdays = {'monday','tuesday','wednesday','thursday','friday','saturday','sunday'};
workhours = [8.0 4.5 8.2 7.4 10.2 3.1 0.6];
[~,arr] = sort(workhours,'descend');
X = reordercats(categorical(workdays),workdays(arr));
figure;
bar(X,workhours);

1 个评论

Thank you Johannes,
Works, but I had to convert the second argument of reordercats with cellstr.

请先登录,再进行评论。

更多回答(1 个)

[sy, syidx] = sort(y, 'descend');
cc = categorical(1:length(y), 1:length(y), string(x(syidx)));
plot(cc, sy);

类别

帮助中心File Exchange 中查找有关 Data Distribution Plots 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by