Est-ce que quelqu'un sait comment utiliser une palette de couleurs prédéfinie dans ggplot?
J'ai un vecteur de couleurs que j'aimerais utiliser:
rhg_cols <- c("#771C19", "#AA3929", "#E25033", "#F27314", "#F8A31B",
"#E2C59F", "#B6C5CC", "#8E9CA3", "#556670", "#000000")
Mais quand j'essaye de le transmettre à rien ne s'est passé
ggplot(mydata, aes(factor(phone_partner_products)), color = rhg_cols) +
geom_bar()
Vous devez mettre colour = rhg_cols
Dans aes()
. Pour autant que je sache, vous voulez appliquer un dégradé aux barres (dans barplot) avec une variable de facteur en abscisse? Utilisez ensuite fill
- essayez ceci à la place:
ggplot(mydata, aes(factor(phone_partner_products), fill = factor(phone_partner_products))) +
geom_bar() +
scale_fill_manual(values = rhg_cols)
ou essayez d'obtenir une réplique approximative avec:
ggplot(mydata, aes(factor(phone_partner_products), fill = phone_partner_products))) +
geom_bar() +
scale_fill_gradient(low = "#771C19", high = "#000000")
Notez que dans le second cas, une variable continue est passée à fill
esthétique, donc scale_fill_gradient
Est passé ensuite. Si vous passez un factor
au fill
aes, vous devez vous en tenir à scale_fill_manual(values = rhg_cols)
.
Si les couleurs sont une palette, utilisez scale_colour_manual
:
ggplot(mydata, aes(factor(phone_partner_products), colour = colour_variable)) +
scale_colour_manual(values = rhg_cols)
Puisque les couleurs que vous voulez SONT les valeurs de l'esthétique des couleurs, ce que vous voulez vraiment, c'est l'échelle identity
, dans ce cas scale_fill_identity
.
ggplot(mydata, aes(factor(phone_partner_products)), color=rhg_cols) +
geom_bar() +
scale_fill_identity())
Puisque vous n'avez pas fourni de données, je vais utiliser un exemple légèrement différent en utilisant vos données de couleur:
rhg_cols <- c("#771C19","#AA3929","#E25033","#F27314","#F8A31B",
"#E2C59F","#B6C5CC","#8E9CA3","#556670","#000000")
mydata <- sample(rhg_cols, 100, replace = TRUE)
qplot(mydata, fill = mydata) +
scale_fill_identity()
remarque: j'ai omis + opts(axis.text.x=theme_text(angle=90))
pour plus de clarté dans l'exemple.
Ajoutez d'abord les couleurs à votre ensemble de données:
mydata$col <- rhg_cols
Mappez ensuite la couleur à cette colonne et utilisez scale_colour_identity
ggplot(mydata, aes(factor(phone_partner_products, colour = col))) +
geom_bar() +
scale_colour_identity()