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)
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
Vous devez vous connecter pour publier un commentaire.
Vous devez utiliser
couper
pour diviser x en intervalles etcolorRampPalette
pour créer fixe la taille de la palette:OriginalL'auteur AndreyAkinshin
Vous pourriez travailler avec les prédéfinis des niveaux de gris des couleurs
gray0
, ...,gray99
comme ceci:Résultat:
OriginalL'auteur Stephan Kolassa