R,使用 quadplot,根据第 5 列值生成数据点的颜色渐变

R, using quadplot, generating color gradient for data points, based on 5th column of values

我想使用 quadplot 绘制基于第 5 个变量的颜色编码的数据点。例如:

a <- c(.2,.4,.6,.4,.2,.4,.2,.5)
b <- c(.2,.3,.1,.3,.3,.3,.4,.2)
c <- c(.3,.1,.2,.1,.1,.1,.1,.1)
d <- c(.2,.2,.1,.2,.4,.2,.3,.2)
e <- c(-10,20,-100,90,10,-30,-12)
f <- data.matrix(data.frame(a,b,c,d,e))

      a   b   c   d    e
[1,] 0.2 0.2 0.3 0.2  -10
[2,] 0.4 0.3 0.1 0.2   20
[3,] 0.6 0.1 0.2 0.1 -100
[4,] 0.4 0.3 0.1 0.2   90
[5,] 0.2 0.3 0.1 0.4  -10
[6,] 0.4 0.3 0.1 0.2   20
[7,] 0.2 0.4 0.1 0.3 -100
[8,] 0.5 0.2 0.1 0.2   90

我想绘制 a、b、c 和 d,并根据列 "e" 中的值为每个数据点设置颜色渐变。有任何想法吗?如果有另一个包可以满足我的需要,那也行。提前感谢您的任何意见。

这是你想要的吗?

# Create custom color palette (blue to red gradient)
grad <- colorRampPalette(c("blue","red"))

# Get a vector of colors and deal with negative values in column "e"
colors <- grad(length(min(f[,5]):max(f[,5])))
index <- f[,5] + abs(min(f[,5]))

# Plot using quadplot
quadplot(f[,-5], labelcol=1, labelpch=1:4, col=colors[index], pch=19)

# Add color legend
library(shape)
colorlegend(col=colors, zlim=range(f[,5]), zval=sort(unique(f[,5])), posx = c(0.86, 0.89), posy=c(0.2,0.9))