# ListPlot vector 3D circle line

I got a 2D vector with the following code.

lx = N[Table[{{r Cos[phi], r Sin[phi] }, { -Sin[phi], Cos[phi]}}, {r,
0.5, 2, 0.5}, {phi, 0, 2 \[Pi], (2 \[Pi])/(10 (r + 0.1))}]];
ListVectorPlot[lx, VectorPoints -> All]


Figure 1

I would like to plot a similar 3D vector, where the vectors is distributed around a circle. I tried VectorPlot3D, but I get the 3D vector with square lattice, which is not what I expect. I want the 3D vectors are arranged on a circle line, similar to the 2D vectors. Thanks for any suggestion.

Figure 2

You can use Graphics3D combined with Arrow. If you want to change colors, just modify the value of nn.

nn=1;
dx = 0.5;
tab = Table[
Flatten[Table[
Arrow[{{c Cos[x] Sin[y], c Sin[x] Sin[y],
c Cos[y]}, {c Cos[x + dx] Sin[y], c Sin[x + dx] Sin[y],
c Cos[y]}}], {x, 0, 2 Pi, dx}, {y, 0, 2 Pi, dx}], 1], {c, 1,
3, 1}];
Graphics3D[Table[{Hue[nn/i], tab[[i]]}, {i, 1, Length[tab]}]]


• Thanks a lot! It would be nice if the color of the arrow can be determined by the value of r. – Jing Dec 20 '15 at 7:23

You can try SliceVectorPlot3D

SliceVectorPlot3D[{x, y, z}, {Norm[{x, y, z}, 2] == 2.5}, {x, -3,
3}, {y, -3, 3}, {z, -3, 3}, VectorPoints -> 7,
VectorStyle -> "Arrow3D", PlotStyle -> Opacity[0], Boxed -> False,
Axes -> False]