def draw_heat_map(canvas, a, dx, dy): lowclr = clr(200, 255, 255) highclr = clr(255, 200, 0) maxval = numpy.max(a) minval = numpy.min(a) diff = maxval - minval if diff<0.1: return for i in xrange(len(a)): rowi = a[i] for j in xrange(len(rowi)): val = rowi[j] intensity = (val - minval)/diff iclr = (1-intensity)*lowclr + intensity*highclr canvas.rect(None, i*dx, j*dy, dx, dy, color(iclr)) canvas.send_commands()
def set_color_levels(interpolator, color_text=Emilys_colors): # split text on lines lines = color_text.strip().split("\n") # split each line lists = [line.split() for line in lines] # convert to float in range 0..255 numlists = [[float(x) * 255 for x in L] for L in lists] # convert to color arrays. clrlists = [color_scale.clr(*L) for L in numlists] # convert to index mapping with indices from 0 to n-1 clrmapping = dict((count, clr) for (count, clr) in enumerate(clrlists)) interpolator.set_color_mapping(clrmapping)