Re: VectorColorFunction
- To: mathgroup at smc.vnet.net
- Subject: [mg124478] Re: VectorColorFunction
- From: Dan <dflatin at rcn.com>
- Date: Sat, 21 Jan 2012 05:14:32 -0500 (EST)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- References: <jfb3dr$hu0$1@smc.vnet.net>
On Jan 20, 2:00 am, Peter Rodenbach <peter.rodenb... at googlemail.com> wrote: > Hi experts, > > I want to plot via ListVectorPlot a Field of Vectors. I obtained the > vectors from a physics experiment. The Norm of all vectors is very > similar, and what is important is its direction! > > Therefore, what I want to do now is: give each vector a color with a > different direction a different color, e.g., up to 0.5degree red, 0.5 > to 1 degree yellow, etc. > > The Problem: The norm of each vector is used as argument for the > function that determines the color, according to the help > > "With the setting VectorColorFunction->func, the arguments supplied to > func are as follows" ,...., x,y,Subscript[v, x],Subscript[v, > y],Norm[{Subscript[v, x],Subscript[v, y]}]" > > Does anyone have an idea for a workaround? > > Thanks > > Peter One solution is to take the output of ListVectorPlot and with a ReplaceAll and a Rule prepend each Arrow with a color, e.g. directionHue[{p1_,p2_}]:=Hue[Rescale[ArcTan@@(p2-p1),{-\[Pi],\[Pi]}]]; data=Table[{Sin[x],Cos[y]},{x,-2,2,0.1},{y,-2,2,0.1}]; ListVectorPlot[data]/.Arrow[pts_]->{directionHue@pts,Arrow@pts} Here I have a continous color function based on direction. It can be easily modified to return one of a discrete set of colors based on angle range. -- Dan