How to draw a histogram of my data?
2 views (last 30 days)
Show older comments
I have two vectors a and b, where they are as follows:
b=1:100;
a=1e-18:1e-15;
I want to draw a histogram of them such that a is on x-axis and b is on y-axis as shown in the given attachement.
2 Comments
Jon
on 6 Oct 2020
I think this was answered previously in https://www.mathworks.com/matlabcentral/answers/102406-how-can-i-plot-a-histogram-with-a-logarithmic-x-axis
Accepted Answer
Jon
on 6 Oct 2020
I'm not really sure what you are trying to make a histogram of. It looks like you just want to know how many equally spaced values there are between logarithmically spaced intervals. In this case you don't need the b vector, other than to look at its maximum value which would just set the maximum horizontal scale value. To make sure you don't exceed this value you have to choose your increment properly. Maybe you are looking for something like this?
numBins = 20;
maxCount = 100;
% calculate increment so that maxCount will not be exceeded
delta = (1e-15 - 1e-18)/(numBins*maxCount);
% generate your equally space data
a=1e-18:delta:1e-15;
% make your histogram
histogram(a,numBins)
set(gca,'xscale','log') %scale the x-axis logarithmically
7 Comments
Jon
on 12 Oct 2020
If it will not run in the older version, then I assume that this feature was added in a more recent version. I don't have an older version to test in. Unless there is something preventing you from doing so I would highly recommend staying up to date with the current version to avoid such problems.
Jon
on 15 Oct 2020
If I have answered your question please accept this answer so that others who might have a similar question will know that an answer is availble.
More Answers (0)
See Also
Categories
Find more on Data Distribution Plots in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!