boxplot

19 visualizaciones (últimos 30 días)
New
New el 13 de Mzo. de 2012
Comentada: Benoit Espinola el 10 de Jun. de 2020
I have a matrix of occurences (7 rows(countries),46 columns(number of shoes)), n - number of occurences - for example in "a" I have n1=450, single pair of shoes...
1 2 3 .... 46
a n1 n2 n3 .... n46
b
.
. . g
I would like to produce 7 boxplots representing the distribution in each category a-g. Normally I would have 450 times 1, n2 times 2 etc... is there a simple way to do it? Does anybody have a suggestion for a nicer representation than the boxplot?
Thank you

Respuesta aceptada

Tom Lane
Tom Lane el 16 de Mzo. de 2012
This may partially answer what you want. Step 1 would be to take the data for "a" and stretch it out as you describe. Here's one way to expand a data vector according to a vector of frequencies:
f = [4 3 0 1 2]; % frequencies
d = [1 2 3 4 5]; % data
c = [0, cumsum(f)]; % cumulative sum of frequencies
x = zeros(1,c(end));
for j=1:length(c)-1
x(c(j)+1:c(j+1)) = d(j); % insert each value as required
end
  2 comentarios
New
New el 18 de Mzo. de 2012
Thank you!
Benoit Espinola
Benoit Espinola el 10 de Jun. de 2020
This could become an issue if you have very large frequencies.
For instance:
d = [1 2 3 4 5];
f = [4e10 3e9 0 1e10 2e11];
You could endup with a variable with a length of 2.53e11 (which is massive).
I tried it and I get the following error:
Error using zeros
Requested array exceeds the maximum possible variable size.
How can you deal with such a scenario?

Iniciar sesión para comentar.

Más respuestas (1)

Tom Lane
Tom Lane el 14 de Mzo. de 2012
It seems like 1:46 represents your possible data values and [n1 n2 ... n46] represents the frequency of each value. If you "edit mle" and look toward the bottom, it has a little function that expands this sort of representation into a vector with n1 copies of 1, n2 copies of 2, and so on. You could try copying this code to your own function. A warning is that you will need to remove values with a frequency of zero before calling the function.
If you're not comfortable doing this, or if I haven't answered your question, let me know.
  1 comentario
New
New el 15 de Mzo. de 2012
Couldn't make it work properly...
Some easier way?
Thanks

Iniciar sesión para comentar.

Community Treasure Hunt

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

Start Hunting!

Translated by