值列表的渐变颜色插值

Gradient color interpolation for a list of values

我确信这个问题的多个版本之前已经得到回答,但我正在寻找我正在处理的特定问题。 我有一个值列表,例如:

[81,43,31,20,10,5,1,0]

我想为这些值中的每一个分配白色和黑色之间的颜色,值越高越暗越时尚。 到目前为止,在 R 中,我可以使用 colorramppalette 函数,并且图像函数会自动将这些颜色分配给 heatmap 中的值。 我想学习如何手动分配这些颜色以更好地控制数据的着色方面。

vec = c(81,43,31,20,10,5,1,0)
myColors = c("red", "blue")
myRangeFunction = colorRampPalette(myColors)
myColorRange = myRangeFunction(max(vec))
myColors = myColorRange[vec]
plot(x = seq_along(vec),
     y = vec,
     cex = 2,
     pch = 19,
     col = myColors)