how can I make a colored 2D-surface in a polar plot? I want to give some labels to this polar... It is possible?
    3 views (last 30 days)
  
       Show older comments
    
clc
c=input('How many blades are there in the blower?:');
t = 0:.01:2*pi;
if mod(c,2)==1 polar(t,(cos((c*t))),'-r') else polar(t,(cos((c/2)*t).^2),'-r') end
% find all of the text objects in the polar plot
h = findall(gcf,'type','text');
% delete the text objects
delete(h);
0 Comments
Accepted Answer
  Joseph Cheng
      
 on 7 Jul 2015
        
      Edited: Adam Danz
    
      
 on 30 Sep 2025
  
      the fill is a bit temperamental (does not work for odd blades). but it should be a starting point for you to look further.
clc
% c=input('How many blades are there in the blower?:');
c=randi(6,1,1);
t = 0:.01:2*pi;
if mod(c,2)==1 
    ph = polar(t,(cos((c*t))),'-r') 
else
    ph = polar(t,(cos((c/2)*t).^2),'-r') 
end
% find all of the text objects in the polar plot
h = findall(gcf,'type','text');
% delete the text objects
delete(h);
patch(get(ph,'XData'), get(ph,'YData'), 'g')
fins = linspace(0,360,c+1);
for ind = 1:c
    txtx = 1.2*cosd(fins(ind));
    txty = 1.2*sind(fins(ind));
    text(txtx,txty,['fin ' num2str(ind)])
end
More Answers (2)
  bio lim
      
 on 8 Jul 2015
        clc
c=input('How many blades are there in the blower?:');
t = 0:.01:2*pi;
if mod(c,2)==1 
  radius = cos(c*t);
  radius(radius <= 0) = 0;
  ph = polar(t,(radius),'-r') 
else
  ph = polar(t,(cos((c/2)*t).^2),'-r')
end
% find all of the text objects in the polar plot
h = findall(gcf,'type','text');
% delete the text objects
delete(h);
patch(get(ph,'XData'), get(ph, 'YData'), 'b')
The rest is the code from Cheng, except the 'fins' was renamed to 'Blade' as the image suggested.
fins = linspace(0,360,c+1);
for ind = 1:c
  txtx = 1.2 * cosd(fins(ind));
  txty = 1.2 * sind(fins(ind));
  text(txtx,txty,['Blade ' num2str(ind)])
end
0 Comments
  Adam Danz
    
      
 on 30 Sep 2025
        Starting in R2025a, polar axes support patch and surface objects. 
There's more info about patch and surface support in polar axes in the  Graphics and App Building blog.
c = 8;
t = linspace(0,2*pi,1000);
pax = polaraxes(); 
if mod(c,2)==1 
    patch(pax,t,(cos((c*t))),'-r') 
else
    patch(pax,t,(cos((c/2)*t).^2),'-r') 
end
0 Comments
See Also
Categories
				Find more on Polar Plots in Help Center and File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
