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 > > > > >