MATLAB: Histogram plot isn’t shown properly.

histogramimage analysisimage processingMATLABmatlab function

When I am trying to plot the Histogram it looks like as shown below. If I try to scale the y axis as it is too high the variation in the lower values aren't seen. How to show a proper histogram plot so that the variation in the lower side can be also seen along with the highest point in the y axis? Kindly help

Best Answer

Can't change the characteristics of the image; any linear scaling of the axis will only change the numerical values, not the shape.
The usual "trick" for data which have a very large dynamic range is to use log scaling on one or both axes...
histogram(yourData)
hAx=gca; hAx.YScale='log'; % get axes handle; set y axis to logarithmic
Illustration...
x=logspace(0,6,1000).';
nexttile, histogram(x)
nexttile, histogram(x), hAx=gca;hAx.YScale='log';
produced:
The downside is you can't have identically zero on the axis (there is no free lunch).