boxplot with descending median

4 vues (au cours des 30 derniers jours)
Jonathan Gingrich
Jonathan Gingrich le 26 Août 2020
Modifié(e) : Adam Danz le 26 Août 2020
I am trying to plot my data (8376x35 array with 1x35 cell array of labels) in a 35 box boxplot and order the boxes in descending order based off of the median value of each column. I have seen a lot on ordering by grouping, but I don't believe I am dealing with specific groups as all are part of one group. I started by taking the median of each column , but if I sort that in descending order, I lose the equivalent sorting of the cell array. I tried converting the array to a table with the cell array as the variable names, but could not sort the table by median values of each column. How should I go about sorting my data so that I can plot it as a boxplot in descending order?

Réponse acceptée

Adam Danz
Adam Danz le 26 Août 2020
Modifié(e) : Adam Danz le 26 Août 2020
Use the sort index to change the order of columns in your data.
% Create demo data
rng('default')
data = rand(8376, 35).*randi(100,1,35);
% Compute median of each column
med = median(data);
% Sort the columns of data by descending median order
[~, sortIdx] = sort(med,'descend');
dataDescend = data(:,sortIdx);
% Plot the results
boxplot(dataDescend)
If you want to label the orginal column order,
set(gca, 'XTick', 1:numel(med), 'XTickLabel', sortIdx)
xlabel('Original column order')

Plus de réponses (0)

Catégories

En savoir plus sur Shifting and Sorting Matrices dans Help Center et File Exchange

Produits


Version

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by