Re: Documentation on (Color) Blend
- To: mathgroup at smc.vnet.net
- Subject: [mg111277] Re: Documentation on (Color) Blend
- From: Patrick Scheibe <pscheibe at trm.uni-leipzig.de>
- Date: Mon, 26 Jul 2010 06:36:31 -0400 (EDT)
Hi,
to interpolate between the colors red RGBColor[{1,0,0}], green, and
white you really dont need the Blend function. You have 4 values for the
colors
{{0, 1, 0}, {1, 1, 1}, {1, 1, 1}, {1, 0, 0}}
Just interpolate the points and build a function giving you the colors
in range:
f[x_] = Through[(ListInterpolation[#, {{0, 1}}] & /@
Transpose[{{0, 1, 0}, {1, 1, 1}, {1, 1, 1}, {1, 0, 0}}])[x]];
cols[start_, end_, n_] :=
Table[RGBColor[f[i]], {i, start, end, (end - start)/(n - 1)}]
with that you can do
Graphics[Transpose[{cols[0, 1, 20], Table[Disk[{i, 0}], {i, 20}]}],
Background -> Gray]
or just get Colors from White to Red:
In[28]:= cols[0.5, 1, 5]
Out[28]= {RGBColor[{1.0625, 1.0625, 1.125}],
RGBColor[{1.02051, 1.03418, 1.05469}],
RGBColor[{0.960938, 0.882812, 0.84375}],
RGBColor[{0.936523, 0.555664, 0.492187}], RGBColor[{1., 0., 0.}]}
Cheers
Patrick
On Sun, 2010-07-25 at 19:48 -0500, Ryan Gorka wrote:
> Patrick and David:
>
> Thanks for the help. Once I generate something I like, such as
>
> DensityPlot[x, {x, -1, 1}, {y, 0, 1}, FrameTicks -> None,
> ColorFunction -> (Blend[{{0, Green}, {0.4, White}, {0.6, White}, {1,
> Red}}, #] &)]
>
> Do you have any suggestions for the best way (or at least a reasonable
> way) to pick a range of x colors from that? I'll probably start with a
> linear sampling, although non-linear samplings also interest me---my
> main goal is to avoid injecting 'lie factor' via coloring in my
> diagrams, so any wisdom you can impart is appreciated. BTW, are there
> any Edward Tufte fans in here?
>
> I suppose for now I can just use //InputForm, Part[] and go digging
> for RGB values.
>
> -RG
>
> On Sun, Jul 25, 2010 at 7:04 PM, Patrick Scheibe
> <pscheibe at trm.uni-leipzig.de> wrote:
> Hi,
>
> you don't need the (buggy) sample with the Table. Just read a
> bit in the
> Blend documentation and eventually do something like
>
> DensityPlot[x, {x, -1, 1}, {y, 0, 1}, FrameTicks -> None,
> ColorFunction -> (Blend[{{0, Green}, {0.4, White}, {0.6,
> White}, {1,
> Red}}, #] &)]
>
> Cheers
> Patrick
>
>
> On Sun, 2010-07-25 at 01:58 -0400, telefunkenvf14 wrote:
> > Group:
> >
> > The documentation on Blend[], in the "Possible Issues"
> section,
> > contains the following example.
> >
> > ----------------
> > In plot functions, use ColorFunctionScaling to control
> global scaling
> > of variables:
> >
> > Table[DensityPlot[x, {x, -2, 3}, {y, 0, 1}, FrameTicks ->
> None,
> > ColorFunction -> (Blend[{Red, Green}, #] &),
> > ColorFunctionScaling -> t], {t, {False, True}}]
> > ----------------
> >
> > I noticed that when I evaluate the code, the original output
> is not
> > reproduced. On my machine the new plots look exactly the
> same.
> > (Windows 7, 64-bit, Mathematica 7.0.1)
> >
> > Can someone offer a fix? My goal is to generate a Green to
> White to
> > Red spectrum with a 'fuzzier' center; eventually I'll use
> this for
> > coloring a map.
> >
> > -RG
> >
>
>
>