I am trying to represent 3-dimensional vectors in a 3-dimensional space. In my field, there is a common color coding (color wheel) as in the picture.
For (vx,vy,vz) vectors: (0,0,1) is white, (0,0,-1) is black, (vx,vy,0) is a Hue coloring. As vz changes from -1 to 1, we may need to adjust the saturation and brightness for Hue function, but I am stuck how to show it. How can I make a VectorColorFunction for ListVectorPlot3D with such color-wheel?
For example, the third image is a failed one with
g = VectorPlot3D[{x, y, z}, {x, -6, 6}, {y, -6, 6}, {z, -6, 6},
VectorStyle -> "Arrow3D", VectorPoints -> 15,
VectorColorFunction ->
Function[{x, y, z, vx, vy, vz, n},
ColorData["Rainbow"][Arg[vx + I vy]]], AxesLabel -> {x, y, z},
VectorScale -> {0.15, Scaled[0.5]},
RegionFunction -> Function[{x, y, z}, 4^2 < x^2 + y^2 + z^2 < 5^2]]