This was ported from Observable: Diverging color scatterplot, with a few modifications mainly to set up the margins.