Je veux que la couleur barplot
soit automatiquement remplie avec le chiffre minimum en RMSE column to be
vert the nest to the minimum
RMSE figures to be
jaune vert the middle figure to be
jaune , the second to the maximum RMSE to be
orange while the maximum figure in the RMSE column to be
rouge ».
df1 <- data.frame(Methods = c('b', 'a', 'c', 'd', 'e'), lb = c(9, 7, 9, 4, 9), RMSE = c(0.26177952, 0.11294586, 0.02452239, 0.08290467, 0.41488542))
ggplot2::ggplot(df1, ggplot2::aes(Methods, lb, fill = RMSE)) + # Using default colors
ggplot2::geom_bar(stat = "identity")# + col = rainbow(5)
J'ai vu cela en ligne et j'imagine comment cela peut m'aider.
colfunc<-colorRampPalette(c("green", "yellowgreen", "yellow", "orange", "red"))
plot(rep(1,5),col=(colfunc(5)), pch=19,cex=2)
Solution du problème
Voici une option utilisant une palette ("Spectral" des schémas ColorBrewer intégrés à ggplot2) qui inclut par coïncidence un spectre de vert-jaune-orange-rouge. (Cela inclut également le bleu, que j'ai évité d'utiliser la values = c(-0.15,1)
partie - qui indique en fait que les nombres doivent être inférieurs de 15% à la plage réelle à attribuer au bleu, de sorte qu'il ne commence pas à utiliser les couleurs avant la plage verte.
ggplot2::ggplot(df1, ggplot2::aes(Methods, lb, fill = RMSE)) + # Using default colors
ggplot2::geom_bar(stat = "identity") +
ggplot2::scale_fill_distiller(palette = "Spectral", values = c(-0.15,1)))
Si vous souhaitez colorer en fonction du classement de RMSE plutôt que de la valeur de RMSE, vous pouvez en faire un facteur et utiliser les cinq couleurs par leur nom :
ggplot2::ggplot(df1, ggplot2::aes(Methods, lb, fill = as.factor(RMSE))) + # Using default colors
ggplot2::geom_bar(stat = "identity") +
ggplot2::scale_fill_manual(values = c("green", "yellowgreen", "yellow", "orange", "red"))
(Esthétiquement, vous voudrez peut-être choisir d'autres couleurs en fonction de leurs valeurs hexadécimales, comme peut-être "# 70B070" au lieu de "vert" si vous préférez certaines couleurs spécifiques.)
Aucun commentaire:
Enregistrer un commentaire