R使用值列表作为色标

Gij*_*ijs 5 plot r colors scale

我想将变量的值表示为R中散点中的点的颜色.

x <- rnorm(100) + 5
y <- rnorm(100) + 5
plot(x, y)
Run Code Online (Sandbox Code Playgroud)

在这里,我想使用变量作为着色的输入.但是,如果我尝试

plot(x, y, col = x)
Run Code Online (Sandbox Code Playgroud)

我很奇怪,可能很明显.现在我可以得到我想要的东西:

x_norm = (x - min(x)) / (max(x) - min(x))
col_fun <- colorRamp(c("blue", "red"))
rgb_cols <- col_fun(x_norm)
cols <- rgb(rgb_cols, maxColorValue = 256)
plot(x, y, col = cols)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

但这看起来有点复杂,并且要使用NA或NaN值,例如将它们设为黑色作为颜色,就不那么容易了.为了我.有一种简单的方法可以做到这一点,我忽略了吗?

And*_*hin 8

您应该将cutdevide x用于间隔并colorRampPalette创建固定大小的调色板:

x <- rnorm(100) + 5
y <- rnorm(100) + 5
maxColorValue <- 100
palette <- colorRampPalette(c("blue","red"))(maxColorValue)
plot(x, y, col = palette[cut(x, maxColorValue)])
Run Code Online (Sandbox Code Playgroud)