color coding for numbers

N

namenobodywants

hello

what is the best way of using color/shading on a tkinter canvas as a visualization for a two-dimensional grid of numbers? so far my best idea is to use the same value for R,G and B (fill = '#xyxyxy'), which gives shades of gray. if possible i'd like to have a larger number of visually distinct values. i've seen visualizations that seem to use some kind of hot-versus-coldcolor coding. does anybody know how to do this? thanks if you can help.

peace
stm
 
U

Ulrich Eckhardt

Am 21.08.2012 10:38, schrieb (e-mail address removed):
what is the best way

Define "best" before asking such questions. ;)

using color/shading on a tkinter canvas as a visualization for a
two-dimensional grid of numbers? so far my best idea is to use the
same value for R,G and B (fill = '#xyxyxy'), which gives shades of
gray. if possible i'd like to have a larger number of visually
distinct values.

The basic idea behind this is that you first normalize the values to a
value between zero and one and then use that to look up an according
color in an array. Of course you can also do both in one step or compute
the colors in the array on the fly (like you did), but it helps keeping
things simple at least for a start, and it also allows testing different
approaches separately.

If the different number of resulting colors isn't good enough then, it
could be that the array is too small (its size determines the maximum
number of different colours), that the normalization only uses a small
range between zero and one (reducing the effectively used number of
colours) or simply that your screen doesn't support that many different
colors.

i've seen visualizations that seem to use some kind
of hot-versus-cold color coding. does anybody know how to do this?

The colour-coding is just the way that above mentioned array is filled.
For the hot/cold coding, you could define a dark blue for low values and
a bright red for high values and then simply interpolate the RGB triple
for values in between.

Uli
 
D

DJC

Am 21.08.2012 10:38, schrieb (e-mail address removed):

Define "best" before asking such questions. ;)


<http://matplotlib.sourceforge.net/api/colors_api.html?highlight=colors#matplotlib.colors>
matplotlib.colors

A module for converting numbers or color arguments to RGB or RGBA

RGB and RGBA are sequences of, respectively, 3 or 4 floats in the range 0-1.

This module includes functions and classes for color specification
conversions, and for mapping numbers to colors in a 1-D array of colors
called a colormap.

see
<http://matplotlib.sourceforge.net/examples/pylab_examples/colours.html?highlight=colours>
 
D

Dennis Lee Bieber

what is the best way of using color/shading on a tkinter canvas as a visualization for a two-dimensional grid of numbers? so far my best idea is to use the same value for R,G and B (fill = '#xyxyxy'), which gives shades of gray. if possible i'd like to have a larger number of visually distinct values. i've seen visualizations that seem to use some kind of hot-versus-cold color coding. does anybody know how to do this? thanks if you can help.

Last time I worked on something using a "temperature scale" it was
system with 8-10 bit planes using a color look-up table running from
dark blue through reds, greens, and finally white. Data values would be
mapped into the range of colors (32-64 depending on hardware; the other
bit planes were needed for annotations and windowing support, rather
than the color-coded data)

On more modern 24-bit (or higher) systems, where each pixel is
directly specified... I suppose one could map the data value to the
H-component of HLS or HSV (0.0-1.0, or 0 to 360deg); then convert back
to RGB. I'd suggest using a range from 0 to 300deg to avoid confusion as
the higher "temps" start to shade back to the lowest.

Strangely, while data plots tend to use dark blue for "cold" and red
for "hot", the color temperature of light is just the other -- dark red
is cold, and blue shading into white is hot.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,744
Messages
2,569,483
Members
44,901
Latest member
Noble71S45

Latest Threads

Top