MATLAB Answers

How to plot the occurency of an element?

12 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)

Community Treasure Hunt

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

Start Hunting!

Translated by