Writting the angle on the tip of the arrow in compass function

5 次查看(过去 30 天)
Hello,
am using the compass function to plot the direction of (x,y) vectors and i changed the degrees from [0 45 90 ...] to [E NE N ...] using
pax = gca;
angles = 0:45:360;
pax.ThetaTick = angles;
labels = {'E','NE','N','NW','W','SW','S','SE'};
pax.ThetaTickLabel = labels;
so in addition to that i want to write the angle of the vector on the tip of the arrow can you help me out?
thanks.
  2 个评论
Walter Roberson
Walter Roberson 2018-6-10
Are you using the polar.m hack I posted at https://www.mathworks.com/matlabcentral/answers/404890-specify-regions-in-compass?s_tid=prof_contriblnk#comment_576975 ? I ask because compass() normally produces a cartesian axes which does not have a ThetaTickLabel property.
Ahmed Siddig
Ahmed Siddig 2018-6-11
Am using the final piece of code you provided me with
set(gca, 'ThetaLim', [225, 315])
thank you very much for that. i have the angle value (V) i just want to make it on the tip of the arrow. much appreciated.

请先登录,再进行评论。

采纳的回答

Walter Roberson
Walter Roberson 2018-6-11
[th, r] = cart2pol(x, y);
text(th, r, sprintfc('%d',round(th(:)*180/pi)))
Here I round the angle to the nearest degree.

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Polar Plots 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by