you are setting your scale limits to be -40 to 80, thus those will be the high and low colors. If you have grey values, this is either because you have NA values, or you have values out of this range.
Check ?ggplot2::scale_fill_gradient
for a bit more information.
The underlying gradient is calculated with scales::seq_gradient_pal()
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…