Switch X and Y axis in a histogram

89 views (last 30 days)
Chen Zhu
Chen Zhu on 10 Apr 2017
Answered: Steven Lord on 10 Apr 2017
hist(a)
How to switch the X and Y axis? Currently X represents values, and Y represents the number of elements in that range. I want to switch the X and Y axis, letting X axis represents the number of elements in that range.
Thanks!

Answers (2)

Steven Lord
Steven Lord on 10 Apr 2017
Change the histogram object's Orientation property.
x = randn(1, 1e4);
h = histogram(x, 'Orientation', 'vertical');
disp('Press a key to change the orientation')
pause
h.Orientation = 'horizontal';

Star Strider
Star Strider on 10 Apr 2017
See if the barh (link) function will do what you want.
You will have to use histcounts with it to get the counts and bin edges. Since barh wants the bin centres, one way to calculate them is to take the mean of the difference of the regularly-spaced edges, divide it by 2, and added it to all but the highest bin edge.
Example:
edges = 1:5;
centres = mean(diff(edges))/2 + edges(1:end-1);

Community Treasure Hunt

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

Start Hunting!