Print

Print


Thanks Nate- I'll get this working and check back with these other options.

I've got a top 25 list of fiction titles, and I'm making a set of divs
change color according to how many times they've been checked out.  If it
looks bad and it's a lousy approach no doubt I'll try something else.

On Tue, Dec 20, 2011 at 9:40 AM, Nate Vack <[log in to unmask]> wrote:

> On Tue, Dec 20, 2011 at 10:57 AM, Nate Hill <[log in to unmask]>
> wrote:
>
> > This way, when I loop through and hit my CSS {background-color:rgb(255,
> > **data**, 255);} each piece of data will generate a different color and
> > I'll have the maximum spread in proportionally correct colors from 0-255.
>
> I'd need to see exactly what you're doing, but I think this method may
> leave you somewhat unsatisfied. The magenta-white color scale isn't
> gonna be lovely, and there's no sense of absolute scale to this
> technique. Maybe that's what you want, but... probably not. You might
> want to say "Hey, values are supposed to be from 0 to 450; anything
> outside this range should be clamped. Or highlighted. Or something."
>
> Anyhow, for "perceptually good" color scales, this is a great resource:
>
> http://colorbrewer2.org/
>
> ... and if you want a good way to generate color ramps in javascript,
> the most excellent d3.js library will help you out:
>
> http://mbostock.github.com/d3/
>
> In this case, to create a scale like this, you'd do:
>
> var data = [6, 457, 97, 200, 122];
> var color_scale = d3.scale.linear().domain([d3.min(data),
> d3.max(data)]).range(['#FF00FF', '#FFFFFF']); // we're expecting data
> from 6..457, and will output magenta to white...
>
> console.log(color_scale(6)); // rgb(255,0,255);
> console.log(color_scale(457)) // rgb(255,255,255);
> console.log(color_scale(500)) // rgb(255,279,255); //oops!
> color_scale.clamp(true);
> console.log(color_scale(500)) // rgb(255,255,255); //better!
>
> -n
>



-- 
Nate Hill
[log in to unmask]
http://www.natehill.net