MSJ
MSJ

Reputation: 23

How can I plot cumulative plots with specific x values?

I was trying to find out, how to plot a cumulative distribution function (cdf) with specific x values but was not successful.

For example, if the dataset is:

x = [2.50 5.21 7.67 8.43 9.15 11.47 14.59 21.45];
y = [0.20 0.09 0.15 0.13 0.17  0.04  0.7   0.15];  % (total 1)

the graph shape definitely looks wrong, when I use y = cdfplot(x).

I also plotted the graph with cumsum(y) and x to check the shape and it looks fine, but I would like to know, if there is any code which plots cumulative distribution plots.

Upvotes: 2

Views: 1167

Answers (1)

HansHirse
HansHirse

Reputation: 18895

There's the stairs function for creating "stairstep graphs", which should be exactly what you want, incorporating your cumsum(y) idea.

Please see the following code snippet. I added two additional points for the start and end of some interval, here [0 ... 25]. Also, your values in y sum up to something larger than 1, so I modified these values, too.

x = [0 2.50 5.21 7.67 8.43 9.15 11.47 14.59 21.45 25];
y = [0 0.10 0.09 0.05 0.10 0.14  0.04  0.4   0.08  0];
stairs(x, cumsum(y));
xlim([-1 26]);
ylim([-0.2 1.2]);

That'd be the output (Octave 5.1.0, but also tested with MATLAB Online):

Output

Hope that helps!

Upvotes: 3

Related Questions