Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #27558 > unrolled thread

color coding for numbers

Started bynamenobodywants@gmail.com
First post2012-08-21 01:38 -0700
Last post2012-08-21 13:48 -0400
Articles 5 — 4 participants

Back to article view | Back to comp.lang.python


Contents

  color coding for numbers namenobodywants@gmail.com - 2012-08-21 01:38 -0700
    Re: color coding for numbers Ulrich Eckhardt <ulrich.eckhardt@dominolaser.com> - 2012-08-21 12:55 +0200
      Re: color coding for numbers DJC <djc@news.invalid> - 2012-08-21 19:07 +0200
        Re: color coding for numbers Ulrich Eckhardt <ulrich.eckhardt@dominolaser.com> - 2012-08-22 12:56 +0200
    Re: color coding for numbers Dennis Lee Bieber <wlfraed@ix.netcom.com> - 2012-08-21 13:48 -0400

#27558 — color coding for numbers

Fromnamenobodywants@gmail.com
Date2012-08-21 01:38 -0700
Subjectcolor coding for numbers
Message-ID<57f81534-03af-475f-91c1-aee554e71ab6@googlegroups.com>
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-cold color coding. does anybody know how to do this? thanks if you can help.

peace
stm


[toc] | [next] | [standalone]


#27563

FromUlrich Eckhardt <ulrich.eckhardt@dominolaser.com>
Date2012-08-21 12:55 +0200
Message-ID<d16cg9-7kq.ln1@satorlaser.homedns.org>
In reply to#27558
Am 21.08.2012 10:38, schrieb namenobodywants@gmail.com:
> 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

[toc] | [prev] | [next] | [standalone]


#27576

FromDJC <djc@news.invalid>
Date2012-08-21 19:07 +0200
Message-ID<k10f7r$ig0$1@dont-email.me>
In reply to#27563
On 21/08/12 12:55, Ulrich Eckhardt wrote:
> Am 21.08.2012 10:38, schrieb namenobodywants@gmail.com:
>> what is the best way
>
> 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>



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

[toc] | [prev] | [next] | [standalone]


#27628

FromUlrich Eckhardt <ulrich.eckhardt@dominolaser.com>
Date2012-08-22 12:56 +0200
Message-ID<hfqeg9-di1.ln1@satorlaser.homedns.org>
In reply to#27576
Am 21.08.2012 19:07, schrieb DJC:
> On 21/08/12 12:55, Ulrich Eckhardt wrote:
>> Am 21.08.2012 10:38, schrieb namenobodywants@gmail.com:
>>> what is the best way
>>
>> Define "best" before asking such questions. ;)
>
> <http://matplotlib.sourceforge.net/api/colors_api.html?highlight=colors#matplotlib.colors>

Sorry, that one must have been unclear. The point was that when asking 
for a _best_ solution to a problem, the criteria for evaluating a 
solution must be known. If you don't define them and they are not 
implicit, there is no possible answer to the question.

Uli

[toc] | [prev] | [next] | [standalone]


#27589

FromDennis Lee Bieber <wlfraed@ix.netcom.com>
Date2012-08-21 13:48 -0400
Message-ID<mailman.3615.1345571283.4697.python-list@python.org>
In reply to#27558
On Tue, 21 Aug 2012 01:38:33 -0700 (PDT), namenobodywants@gmail.com
declaimed the following in gmane.comp.python.general:

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

-- 
	Wulfraed                 Dennis Lee Bieber         AF6VN
        wlfraed@ix.netcom.com    HTTP://wlfraed.home.netcom.com/

[toc] | [prev] | [standalone]


Back to top | Article view | comp.lang.python


csiph-web