R utiliser la liste de valeurs de l'échelle de couleurs

J'aimerais représenter la valeur d'une variable comme une couleur d'un point à un éparpillement dans R.

x <- rnorm(100) + 5
y <- rnorm(100) + 5
plot(x, y)

Ici, je voudrais utiliser une variable d'entrée pour le coloriage. Mais si j'essaie

plot(x, y, col = x)

- Je obtenir quelque chose de bizarre, probablement évidemment. Maintenant, je peux obtenir ce que je veux comme ceci:

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)

R utiliser la liste de valeurs de l'échelle de couleurs

Mais qui semble un peu élaborée, et de le faire fonctionner avec NA ou des valeurs NaN, par exemple en leur donnant le noir comme couleur, n'est pas si facile. Pour moi. Est-il un moyen facile de faire ce que je suis dominant?

Pourquoi vous êtes obtenir "quelque chose de bizarre": les couleurs sont triés et numérotée à l'intérieur de la palette. Lorsque vous ne plot(x, y, col = x), le col argument est arrondi vers le bas pour les nombres entiers et de la couleur appropriée à partir de cette palette est utilisée, c'est pourquoi vous obtenez des bandes de couleurs identiques, chaque bande ayant une largeur de 1. Regardez ?palette. J'ai ajouté de la parcelle à votre question.

OriginalL'auteur Gijs | 2013-02-14