I am trying to plot the Histogram for a matrix which contains the values ranging from 0 to 0.1. However I wish to have the X axis values ranging from 0 to 1 with 20 bins (with each of 0.05 value difference). This is for me to show how the overall distribution is still less than 0.1 in the whole range of 0 to 1.
I tried the following code, and however, this does not work as the Histogram always shrinks the X-axis with values less than 0.1 (due to the maximum value in the matrix).
edges = [0 1];
histogram('BinEdges',edges,'BinCounts',20)
histogram( data(:));
Any help is appreciated for me to achieve this goal. Thanks

 Accepted Answer

You can do this:
data = 0.1 * rand(1, 1000); % Create sample data.
edges = linspace(0, 1, 21); % Create 20 bins.
% Plot the histogram.
histogram(data, 'BinEdges',edges);
% Fancy up the graph.
grid on;
xlim([0, 1]);
xlabel('Data Value', 'FontSize', 14);
ylabel('Bin Count', 'FontSize', 14);
title('Histogram of Data', 'FontSize', 14);
0000 Screenshot.png
Of course you will have only 2 bins for your data to fall into, so I don't know if that's what you want.

1 Comment

Marimuthu Ananthavelu
Marimuthu Ananthavelu on 23 Dec 2018
Edited: Marimuthu Ananthavelu on 23 Dec 2018
Thanks so much, yes thats what I expected to have. :)

Sign in to comment.

More Answers (1)

h=histogram('BinEdges',edges,'BinCounts',20)
h.BinLimits=[0 1] % x-axis range

3 Comments

Thanks, however, this does not work with the following Error.
Error using matlab.graphics.chart.primitive.Histogram/set.BinLimits
BinLimits cannot be set when BinCountsMode is 'manual'.
Error in MutualInformationpairs (line 35)
hi.BinLimits=[0 1];
So remove BinCounts option and try?
Unfortunateley, that does not help. THanks so much.

Sign in to comment.

Products

Release

R2018b

Community Treasure Hunt

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

Start Hunting!