Re: Coloring function
- To: mathgroup at smc.vnet.net
- Subject: [mg121477] Re: Coloring function
- From: "Oleksandr Rasputinov" <oleksandr_rasputinov at hmamail.com>
- Date: Fri, 16 Sep 2011 05:49:36 -0400 (EDT)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- References: <j4sdle$sgv$1@smc.vnet.net>
On Thu, 15 Sep 2011 09:40:14 +0100, guiwi <guillaume.witz at yahoo.com> wrote:
> Hi everybody. I have a general problem with the coloring method of
> ColofFunction. Let's consider a plane of points that one wants to plot
> with ListPointPlot3D. If I want to color the points according to their
> x position, I write:
>
> ListPointPlot3D[Flatten[Table[Table[{i, j, 0}, {j, -30, 30}], {i, -30,
> 30}], 1], ColorFunction -> Function[{x, y, z}, RGBColor[x, 0, 0]]]
>
> and that indeed works. But if I want to color according to the
> absolute value of x and use
>
> ColorFunction -> Function[{x, y, z}, RGBColor[Abs[x], 0, 0]]
>
> the coloring is not symmetrical around the x=0 position, but
> identical to the previous case. Another problem is to obtain a radial
> coloring with
>
> ColorFunction -> Function[{x, y, z}, RGBColor[x^2+y^2, 0, 0]]
>
> where the origin of the radial coloring is not at {0,0} but somewhere
> on the edge of the plot. Anyone knows how to control that coloring ?
> Thanks.
> Guillaume
>
The option you are looking for is ColorFunctionScaling -> False. However,
since RGBColor expects its arguments to be normalised, you will have to do
this yourself:
ListPointPlot3D[
Flatten[Table[Table[{i, j, 0}, {j, -30, 30}], {i, -30, 30}], 1],
ColorFunction -> Function[{x, y, z}, RGBColor[Abs[x]/30, 0, 0]],
ColorFunctionScaling -> False
]
ListPointPlot3D[
Flatten[Table[Table[{i, j, 0}, {j, -30, 30}], {i, -30, 30}], 1],
ColorFunction ->
Function[{x, y, z}, RGBColor[(x^2 + y^2)/(2 30^2), 0, 0]],
ColorFunctionScaling -> False
]