Je souhaite créer un graphique à barres empilées dans lequel mes axis.text
prennent leurs valeurs de couleur à partir d'une variable de la trame de données qui fournit également la couleur fill
de la barre. Ceci est très important parce que les consommateurs des visuels finaux verront une série de ces diagrammes à barres ainsi je dois m'assurer que les couleurs sont conformées pour chaque type de produit quoique les valeurs de montant (et donc la commande) varieront. Le ci-dessous est le plus proche que je peux obtenir.Correspondance des étiquettes axis.text aux couleurs contenues dans la variable de trame de données dans ggplot
# My data sample
df <- data.frame(x=1:4, Type = c("Metals", "Foodstuff", "Textiles", "Machinery"), myColour = c('blue', 'red', 'green', 'orange'), Amount = c(75, 50, 25, 5))
# Create factor to order by amount value
df$Type <- factor(df$Type, levels = df[order(df$Amount), "Type"])
# MAKE BAR
gg1 <- ggplot(df, aes(Type, Amount, fill = Type, color = myColour)) +
geom_bar(stat = 'identity', position = 'dodge', show.legend = FALSE, width = .85, colour = 'lightgrey', fill = df$myColour) +
#ggtitle("Exports Profile (%)") +
labs(x = NULL, y = NULL) +
scale_y_continuous(breaks = waiver(), limits = c(0,100)) +
theme(#plot.title = element_text(family= 'sans', color = 'black', size = 28),
#axis.title = element_text(family= 'sans', color = 'black', size = 24),
axis.text.y = element_text(colour = df$myColour, size = 18, face = 'bold'),
axis.ticks.y = element_blank(),
axis.text.x = element_text(colour = 'black', size = 16),
axis.ticks.x = element_line(colour = 'grey60'),
axis.ticks.length = unit(3, "mm"),
axis.line = element_line(NULL),
plot.background = element_rect(fill = NULL),
panel.background = element_rect(fill = 'white', colour = 'white'),
panel.grid.major.x = element_line(colour = 'grey60', linetype = 'dashed'),
panel.grid.major.y = element_line(colour = 'grey60', linetype = 'dashed'),
#panel.margin = unit(c(0,0,0,0), "mm"),
aspect.ratio = (600/450)) +
coord_flip()
gg1
En faisant vos suggestions de modifications, je reçois ceci: Erreur dans la couche (données = données, mappage = mappage, stat = stat, geom = GeomBar,: objet 'myColour' pas trouvé – mikeLdub
C'est ça ... et j'ai didn Je ne sais même pas sur tidyverse ... gracias! – mikeLdub