Changing the axes of a polar plot
4 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Jelena Starovic
am 24 Dez. 2015
Beantwortet: Star Strider
am 24 Dez. 2015
I have a polar plot, however it does not fit on the axes given. How can I resize the axes?
t = 0:pi/100:2*pi;
r = abs((2+cos(t)).*(exp(2*1i*t)));
the = angle((2+cos(t)).*exp(2*1i*t));
polar(the,r)
[X,Y] = pol2cart(the,r); % get Cartesian coordinates
factor = 5; % sampling ratio; factor=5 means the arrow will be drawn for every 5th point on the curve
i = 1; % index into quiver array
j = factor * factor; % index into X,Y Cartesian coordinates
u = []; % array for x component of quiver vector
v = []; % array for y component of quiver vector
xt = []; % array for x position of quiver vector
yt = []; % array for y position of quiver vector
while (j+1) <= length(X)
xt(i) = X(j);
yt(i) = Y(j);
u(i) = X(j+1) - X(j);
v(i) = Y(j+1) - Y(j);
i = i + 1;
j = i*factor;
end
hold on;
quiver(xt, yt, u, v);
0 Kommentare
Akzeptierte Antwort
Star Strider
am 24 Dez. 2015
One way to do that is to add a second polar plot, then make it invisible:
t = 0:pi/100:2*pi;
r = abs((2+cos(t)).*(exp(2*1i*t)));
the = angle((2+cos(t)).*exp(2*1i*t));
polar(the,r)
hi = polar(the, r*4/3); % Add Second Polar Plot
set(hi, 'Color','none') % Make Second Polar Plot Invisible
[X,Y] = pol2cart(the,r); % get Cartesian coordinates
. . . REST OF THE CODE . . .
I used a factor of 4/3 to expand the radius of the plot to 4. Change that to whatever works best for you.
0 Kommentare
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Polar Plots finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!