I am visualizing a dataset. My technique is to encode the data into a rgb image with the channel range [0, 255]. The data clusters in a narrow range relative to [0, 255], however, so I'm not getting enough spread in the data to get a legible visualization when I use the standard normalization:

255 * (dataValue - dataMin) / (dataMax - dataMin)

What non-linear normalization techniques could I use? I know the mean and standard deviation.

  • $\begingroup$ Are you ok with throwing away outliers by mapping them outside the [0, 255] range? If so, you could normalize to place the mean at 128 and linearly map 2 or 3 standard deviations around it to [0, 255]. $\endgroup$ May 21, 2020 at 21:59
  • $\begingroup$ This is ocean currents data, so the occasional outliers are the interesting bits, but they are few and far between. Relative to these, the ocean appears calm, unless you can expand those more common data points to reveal the underlying currents. $\endgroup$ May 22, 2020 at 3:58
  • $\begingroup$ Try histogram equalization. $\endgroup$
    – lightxbulb
    May 23, 2020 at 9:03
  • $\begingroup$ Histogram equalization makes a good image, but does't it distort the data values? This is a geospatial visualization of environmental data and the color is keyed to a colormap which is in turned keyed to numerical values. $\endgroup$ Aug 10, 2020 at 17:11


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Browse other questions tagged or ask your own question.