I would like to visualise sparse 3D points against a black background. Each point is associated with a brightness value. I would like a colour map to display these points in a visually appealing way, such that:

  • it is obvious that the colour corresponds to brightness
  • points with a low brightness value remain visible against a black background
  • bright points are easily distinguishable from dark points, even for the colourblind
  • the above remain true even when compressed with JPEG or h264 compression (e.g. when making a YouTube video)

I am well aware of famous colour maps such as Viridis, Parula, Cubehelix, Magma, etc. However, these are not designed for plotting sparse points against a black background, so the darker points are far too dark and cannot be easily seen.

This is the basic black and white raw image:

black and white

This is the current colourmap I'm using:

point cloud

colourmap used

This is the "Plasma" colourmap from matplotlib:


colourmap used

I have developed a tool to assist with picking colours using the HSLuv library

Apparently, for my colourmap, the dark blue points are too hard to see against the black background. Furthermore, with YouTube's video compression, the blue points often disappear altogether.

It looks good for dense point clouds but not for sparse ones.

dense point cloud

I would like some ideas to make the dark points more visible against the black background in the sparse point cloud while still satisfying all 4 constraints mentioned earlier.

1 Answer 1


First, LOVE that tool, that was really fun to play with!

for an answer, what about if you add a 5th color to the gradient, and have your darkest color at around the 10% line, and a slightly lighter color at the 0? Like this:

5 color slider

In playing with your online tool, when I did that, it didn't change the curve for the rest too much, but it sort of popped the smallest dots a little more noticeable.

Your Answer

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

Not the answer you're looking for? Browse other questions tagged or ask your own question.