When using the default color scheme, the font color contrasts normally with the fill of the each heatmap square. But if you try other standard color schemes with reversescale=True, when values are close to zero, the colors will merge. I think this is the wrong default behavior.