Azzera filtri
Azzera filtri

boxplot and how to change x-axis

84 visualizzazioni (ultimi 30 giorni)
Muhlbauer
Muhlbauer il 3 Mar 2011
Hi,
I have a matrix (100,7) with data which I want to plot with boxplot. boxplot(matrix) does the job but I haven't figured out yet how I can change the x-axis. Now it draws a box for each column of the matrix. So, the labels go from 1 to 7. I want to replace 1 to 7 with elements provided by another vector (with 7 elements). How can I do that?

Risposte (3)

Oleg Komarov
Oleg Komarov il 3 Mar 2011
Use the labels option as described in the docs of boxplot:
X = randn(100,4);
boxplot(X,'Labels',{'one','two','three','four'})
Oleg
  2 Commenti
Muhlbauer
Muhlbauer il 4 Mar 2011
All right. Your suggestion works but is a little bit cumbersome.
If the dimensions of X would change I would also have to adapt the labels...
The doc says that I can pass a numeric vector. However, that doesn't work and gives the error
Error using ==> boxplot at 205
Incorrect number of box labels.
even if the number of labels is 7.
Oleg Komarov
Oleg Komarov il 4 Mar 2011
Can you show the code that gives you the error?
I don't get any error if I pass a numeric vector of labels, 7, 5 or whatever they are as long as they match the number of columns of my data

Accedi per commentare.


Walter Roberson
Walter Roberson il 3 Mar 2011
See the example of a few minutes ago posted by a different user, here

Muhlbauer
Muhlbauer il 4 Mar 2011
It seems there is a bug in boxplot on line 204 in order to support label input from a given input vector.
Adding ~(isvector(labels) && numel(labels)==n) to the if statement beginning on line 202 fixes this issue!

Community Treasure Hunt

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

Start Hunting!

Translated by