How to plot the occurency of an element?

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

 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

Thank you very much. Yes, I want to include 9 and 10 as well, that´s why I get the problem with the length. Do you know how to solve it?
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];
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]);
Uh good point Guillaume!

Sign in to comment.

More Answers (0)

Categories

Find more on Creating, Deleting, and Querying Graphics Objects in Help Center and File Exchange

Asked:

on 24 Jul 2018

Commented:

on 24 Jul 2018

Community Treasure Hunt

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

Start Hunting!