Plot a Complex Polar Number as Magnitude Arrow and Phase Dot on a Circle
r = 3;
ψ = Pi/4;
ComplexListPlot[{r Exp[I ψ]},
PlotStyle -> Directive[PointSize[Large], Red],
PlotRange -> {{-4, 4}, {-4, 4}},
PolarGridLines -> {{{ψ, Directive[Opacity[1], Blue, Thick, Arrowheads[Large]]}},
{{r, Gray}}}] /. Line -> Arrow
For multiple points and arrows:
r = 3;
angles = {Pi/4, 2 Pi/3};
colors = {Red, Magenta};
arrowcolors = {Blue, Green};
ComplexListPlot[{r Exp[I #]} & /@ angles,
BaseStyle -> AbsolutePointSize[10],
PlotRange -> 1.2 r {{-1, 1}, {-1, 1}},
Method -> {"GridLinesInFront" -> True},
PlotStyle -> colors,
PolarGridLines -> {MapThread[{#, Directive[Opacity[1], #2, Thick,
Arrowheads[Large]]} &, {angles, arrowcolors}], {{r, Gray}}}] /.
Line -> (Arrow[#, {0, .15 r}] &)
PolarPlot is what You are looking for.
From the examples this one might be cool:
PolarPlot[Floor[\[Theta]], {\[Theta], 0, 2 Pi},
ExclusionsStyle -> {Dashed, PointSize[Medium]}]
ListPolarPlot offers the example for the polar grid:
ListPolarPlot[Sin[Range[0, 4 Pi, 0.1]], Joined -> True,
PlotTheme -> {"Scientific", "Grid"}, ColorFunction -> "DarkRainbow
"]
For the arrow, there is no new built-in available. The enhancement is
AnnotatedArrow[p_, q_,
label_] := {Arrowheads[{{-.1, 0}, {.1, .5,
Graphics[Inset[Style[label, Medium], {Center, Top}]]}, {.1, 1}}],
Arrow[{p, q}]}
Graphics[{AnnotatedArrow[{-1, 0}, {1, 0}, "diameter = 2"], Circle[]}]
Look up the documentation for Arrow for further inspiration: Arrow
PlanarAngle
provides some convention for the usage. That is new in 12. AnglePath
add vector addition conventions. AngleVector
represents the mathematical object central in Your question. It can be input to ListPolarPot
Show
or Overlay
.
A solution in ComplexListPlot is
Show[ComplexListPlot[{0, (1 + I)/Sqrt@2}, PlotStyle -> Thick,
Joined -> True, PolarAxes -> Automatic,
PolarTicks -> {"Degrees", 0.1}, PolarGridLines -> Automatic],
Graphics[Circle[]], PlotRange -> {{-1.1, 1.1}, {-1.1, 1.1}},
AxesOrigin -> {0, 0}]
You can also use Locator
to interactively set the angle and the radius:
Deploy @ DynamicModule[{pt = {3, 3}}, Panel @
Graphics[{Dynamic @ Circle[{0, 0}, Norm[pt]], Point[{0, 0}],
Blue, Arrowheads[Large], Dynamic[Arrow[{{0, 0}, pt}]],
Red, AbsolutePointSize[10], Point@Dynamic[pt],
Locator[Dynamic[pt], None],
Gray, Dashed, Dynamic[Line@{{pt[[1]], 0}, pt, {0, pt[[2]]}}],
Black, Dynamic @ Text[Style[HoldForm[# E^(#2 I)]& @@
Round[{Norm[pt], ArcTan @@ pt}, .1], 14],
pt 1.1, If[Abs[ArcTan @@ pt] <= Pi/2, {-1, 0}, {1, 0}]]},
Axes -> True,
Ticks -> Dynamic[Round[{{pt[[1]]}, {pt[[2]]}}, 1/10]],
AxesLabel -> (Style[#, 14] & /@ {"Re", "Im"}),
PlotRange -> {{-6, 6}, {-6, 6}}, ImageSize -> 400]]