HI, I have a question regarding histogram plots in matlab

1 view (last 30 days)
I have a column vector max_ratio that contains values ranging from 0 upto 60. There are roughly 70,000 values inside this vector and almost 69,500 of these values fall within 0 and 10. As a result when I try to plot the histogram the values above 10 don't properly show.
Is there a way to lump the values above 10 together and show it at 10? the values before 10 will show up normally but all the values above 10 will lump together without going further than 10 along x-axis.
I am attaching the code and result I get from it below.
myhist1 = histogram(max_ratio_o,100);
hold on;
BinCenters = (myhist1.BinEdges(2:end)+myhist1.BinEdges(1:end-1))/2;
plot(BinCenters,myhist1.Values,'r-x')
title('Elements in physical space');
xlabel('Max edge length');
ylabel('No. of elements');

Accepted Answer

Ted Shultz
Ted Shultz on 20 Aug 2019
Yes, use the optional edged arguement of histogram.
you can see more here: histogram doc
edges = [1:9 10];
h = histogram(x,edges);
  1 Comment
Anurag Bhattacharjee
Anurag Bhattacharjee on 20 Aug 2019
Hi thank you for your reply. Your answer seems to work. However I have just one doubt. According to the logic presented in the matlab histogram page, shouldn't the code be something like following? If i want to show upto 10 and lump the rest together upto 60?
edges = [1:10 60];
h = histogram(x,edges);

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!