- The arrow length is not normalized
- The arrows on the edge of the circular axes are cut off. The MATLAB Answers post at the following link provides a workaround for changing the circular axes radius: http://www.mathworks.com/matlabcentral/answers/102174-how-to-change-the-axis-limits-and-remove-alter-the-ticks-and-labels-for-a-compass-polar-plot
Adding an arrow to a polar plot
61 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Jelena Starovic
am 18 Dez. 2015
Bearbeitet: Walter Roberson
am 9 Jun. 2018
Is there any way to add an arrow to a polar plot? I want to show the orientation of a polar curve.
This is the curve that I am plotting:
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)
0 Kommentare
Akzeptierte Antwort
Rebecca Krosnick
am 22 Dez. 2015
There is not a single function or property in MATLAB that will allow you to add arrows to a polar plot to indicate orientation, but the following code will accomplish this. It uses the "quiver" function to display velocity vectors of the curve:
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);
A couple aspects of this code you may want to modify:
0 Kommentare
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu Vector Fields 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!