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

 采纳的回答

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 个评论

Thanks so much, yes thats what I expected to have. :)

请先登录,再进行评论。

更多回答(1 个)

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

3 个评论

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.

请先登录,再进行评论。

类别

产品

版本

R2018b

标签

Community Treasure Hunt

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

Start Hunting!

Translated by