# Filling pie graph partitions without the Pie command

1 view (last 30 days)
Daniel on 26 Dec 2019
Answered: Chidvi Modala on 30 Dec 2019
Hi everyone,
I have created a code which basically produces a pie graph between two rings, but I am stuck at filling my partitions with different colors. Does anyone have an Idea to how to solve this? I tried using patch and fill but I can't seem to get them to follow the circles (they just connect the endlines of the partition with a line, not following the circle) Sergey Kasyanov on 27 Dec 2019
I will try to complete your code if you attache it or I will write my own code for plotiing a pie with filled sectors.
Daniel on 27 Dec 2019
I have found a solution which does the job but isn't very nice. It's basically plotting a lot of fat lines to fill the circle.
Thanks anyways for the quick reply!

Chidvi Modala on 30 Dec 2019
You can make you of following code
function pie_chart
r1 = 1; % Outer radius
r = 0.5; % Inner radius
v = [5 15 25 20 35];
C = {'r' 'b' 'm' 'c' 'g'};
theta= 0:0.01:2*pi;
idx_spokes = round( [1 cumsum(v)/100*length(theta) ] ) ; % find the indices of the spokes
for k=1:length(idx_spokes)-1
t = theta( idx_spokes(k):idx_spokes(k+1) ) ; % Theta for Inner ring
si=theta( idx_spokes(k)); % Start index of polygon to be filled
t1 = theta( idx_spokes(k+1):-1:idx_spokes(k) ) ; % Theta for Outer ring
x=[r*cos(t) r1*cos(t1) r*cos(si)];
y=[r*sin(t) r1*sin(t1) r*sin(si)];
plot(x,y);
hold on
fill(x,y, C{k} );
end
axis square
axis on