Pie chart help

8 views (last 30 days)
Njöng
Njöng on 6 Dec 2011
Let´s say I have a vector x = [1 1 2 2 2 3 3 3 3] I want to make a pie chart that shows the frequency of each number. In this case, it would be divided into three slices and the slice representing number 3 would be the biggest etc. Is that possible? Thanks in advance. /Njööööng

Answers (1)

Walter Roberson
Walter Roberson on 6 Dec 2011
More specifically: use hist() or histc() to count the number of items of each type and pass that count vector to pie as the X value. Pass text representations of each element in the labels parameter.
e.g.,
u = unique(x);
counts = histc(x, u);
pie(counts, cellstr(num2str(u(:))) )
  4 Comments
Walter Roberson
Walter Roberson on 6 Dec 2011
num2str() fixed.
Njöng, notice that I did not pie(x), I used pie(counts) where counts is the result of the histc(). There would be 3 values in count so there would be 3 slices, each with area proportional to the _number_ of values in that bin.
Njöng
Njöng on 8 Dec 2011
Sorry, young man, I mustve misread your post, Im an old lady, you see :)
Next question: Is there a way to insert a legend and label the slices?

Sign in to comment.

Tags

Community Treasure Hunt

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

Start Hunting!