Data rescaling for a more informative heatmap? I have a 2000$\times$2000 matrix of values. Over half of the values are 0, and for those non-zeros, most of them are less than 10, but the maximum value is 140. 
So when I do a heatmap, it looks like a single color with couple of spots in it. 
What should I do to rescale them so that it looks prettier in a heatmap? 
I tried multiplying by 10, but it doesn't work very well. 
 A: Since the distribution of your values is clearly right skewed, I would suggest log-transforming the data and then scaling correspondingly for plotting (obviously, you need to convert zeroes to non-zeroes prior to the transformation, for example by adding a small value or similar technique). Square root transformation, suggested by @Glen_b would work, too, but I believe that logarithm is a stronger transformation, if you need that. Depending on your particular data and visualization needs, you can choose the optimal solution between those. Other transformations are also available, see more information here: http://fmwww.bc.edu/repec/bocode/t/transint.html.
If you use R, ggplot2 is nice - I've seen some ggplot2-based heatmap implementations. For example, this blog post and comments partially address the topic, including the scaling aspect: http://learnr.wordpress.com/2010/01/26/ggplot2-quick-heatmap-plotting. If you want additional visualization emphasis on categories, check this nice follow-up Q&A on StackOverflow: https://stackoverflow.com/q/13016022/2872891.
