Je travaille souvent avec ggplot2
qui fait des gradients Nice ( cliquez ici pour un exemple ). J'ai besoin de travailler en base et je pense que scales
peut également être utilisé ici pour créer des dégradés de couleurs, mais je ne comprends absolument pas comment. L'objectif de base est de générer une palette de n couleurs allant de x à y. La solution doit cependant fonctionner en base. C'était un point de départ, mais il n'y a pas de place pour entrer un n.
scale_colour_gradientn(colours=c("red", "blue"))
Je suis bien conscient de:
brewer.pal(8, "Spectral")
de RColorBrewer
. Je cherche plus l'approche similaire à la façon dont ggplot2
gère les dégradés qui indiquent que j’ai ces deux couleurs et que j’ai besoin de 15 couleurs. Comment puis je faire ça?
colorRampPalette
pourrait être votre ami ici:
colfunc <- colorRampPalette(c("black", "white"))
colfunc(10)
# [1] "#000000" "#1C1C1C" "#383838" "#555555" "#717171" "#8D8D8D" "#AAAAAA"
# [8] "#C6C6C6" "#E2E2E2" "#FFFFFF"
Et juste pour montrer que ça marche:
plot(rep(1,10),col=colfunc(10),pch=19,cex=3)
Juste pour développer la réponse précédente colorRampPalette
peut gérer plus de deux couleurs.
Donc, pour un type plus étendu de "carte thermique", vous pouvez ...
colfunc<-colorRampPalette(c("red","yellow","springgreen","royalblue"))
plot(rep(1,50),col=(colfunc(50)), pch=19,cex=2)
L'image résultante:
La réponse ci-dessus est utile, mais dans les graphiques, il est difficile de distinguer les dégradés de noir les plus sombres. Une alternative que j'ai trouvée consiste à utiliser les dégradés de gris comme suit
palette(gray.colors(10, 0.9, 0.4))
plot(rep(1,10),col=1:10,pch=19,cex=3))
Plus d'infos sur l'échelle de gris ici.
Ajouté
Lorsque j'ai utilisé le code ci-dessus pour différentes couleurs comme le bleu et le noir, les dégradés n'étaient pas aussi clairs. heat.colors()
semble plus utile.
Ce document contient des informations et des options plus détaillées. pdf