我想在R中将变量的值表示为散点图上点的颜色。
我遇到了一些奇怪的问题,可能很明显。现在我可以像这样获得我想要的内容:
x <- rnorm(100) + 5
y <- rnorm(100) + 5
plot(x, y)
在这里,我想使用变量作为颜色的输入。但是如果我尝试这样做:
plot(x, y, col = x)
我遇到了一些奇怪的问题,可能很明显。现在我可以像这样获得我想要的内容:
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)
但这似乎有点复杂,要使其适用于NA或NaN值,例如将它们设为黑色,不是很容易。对我而言,有没有一种简单的方法可以做到这一点,而我却忽略了?
plot(x, y, col = x)
时,col
参数会被舍入为整数,并使用来自此调色板的适当颜色,这就是为什么您会得到相同颜色的条纹,每个条纹的宽度恰好为1。请查看?palette
。我已经将绘图添加到了您的问题中。 - Stephan Kolassa