MATLAB Answers

How to plot the occurency of an element?

6 views (last 30 days)
Stef
Stef on 24 Jul 2018
Commented: Paolo on 24 Jul 2018
I have a vector period, which considers 10 periods. I have another vector a, where some of the periods ocurr multiple times, others only one time and others do not appear. Therefore they do not have the same length. I want to plot the periods on the x-axis and the number of occurrences in a on the y-axis in a bar plot.
period = [1:10];
a = [1 1 1 2 3 3 6 6 6 6 6 7 8 8];
The bar at period 1 should be 3, at period 2 it should be 1, at period 3 it should be 2 and at period 4 it should be zero and so on as you can see from a

  0 Comments

Sign in to comment.

Accepted Answer

Paolo
Paolo on 24 Jul 2018
Edited: Paolo on 24 Jul 2018
For the vector a you specified period should be 1:8. Use:
period = [1:8];
a = [1 1 1 2 3 3 6 6 6 6 6 7 8 8];
n = histcounts(a);
bar(period,n)
or do you wish to have 9 and 10 in the graph too?

  4 Comments

Show 1 older comment
Paolo
Paolo on 24 Jul 2018
Slightly hacky but you can do something like:
period = [1:8];
a = [1 1 1 2 3 3 6 6 6 6 6 7 8 8];
n = histcounts(a);
bar(period,n)
fig = gcf;
fig.Children.XAxis.TickValues = [1:10];
fig.Children.XLim = [0 10.5];
Guillaume
Guillaume on 24 Jul 2018
Seems slightly more complicated than it needs to be:
a = [1 1 1 2 3 3 6 6 6 6 6 7 8 8];
histogram(a);
xlim([0.1 10.9]);
Paolo
Paolo on 24 Jul 2018
Uh good point Guillaume!

Sign in to comment.

More Answers (0)