Вот один подход - вы можете просто заполнить на основе расстояния от C:
ggplot(Design.matrix, aes(x = A, y = B, z = C, fill = abs(C-5E-14))) +
theme(legend.title=element_blank()) +
geom_raster(interpolate = T) +
scale_fill_gradientn(colours = rev(viridis(8))) +
geom_contour(breaks = 5E-14, colour="black", size=1)
Или, если вы хотите сохранить заполнениеось как значение измерения шкалы, вы можете создать искусственную палитру, состоящую как из viridis, так и из его реверса.Я использовал различное количество цветов в каждом для аппроксимации, чтобы точка расхода соответствовала черной линии.
ggplot(Design.matrix, aes(x = A, y = B, z = C, fill = C)) +
theme(legend.title=element_blank()) +
geom_raster(interpolate = T) +
scale_fill_gradientn(colours = c(viridis(3),rev(viridis(8)))) +
geom_contour(breaks = 5E-14, colour="black", size=1)