Bonjour.

Comment forcer l’association des catégories aux couleurs ?

Voici un script pour expliciter mon problème :
Code R : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# dataset avec les deux categories
d <- data.frame(
    dt = rep(seq(as.Date("2020/12/22"), by = "day", length.out = 2)),
    nb = c(20,22,18,24),
    cat = rep(c('A','A','B','B'))
)
 
# dataset avec categorie A absente
d2 <- data.frame(
    dt = rep(seq(as.Date("2020/12/22"), by = "day", length.out = 2)),
    nb = c(20,22,18,24),
    cat = rep(c('B','B'))
)
 
library(ggplot2)
library(gridExtra)
 
g1 <- ggplot(d) +
    aes(x = dt, y = nb, fill = cat) +
    geom_bar(stat = "identity")
 
g2 <- ggplot(d2) +
    aes(x = dt, y = nb, fill = cat) +
    geom_bar(stat = "identity")
 
grid.arrange(g1, g2, ncol = 2, nrow = 1)

Nom : Rplot15.png
Affichages : 201
Taille : 2,9 Ko

Sur le graphique de gauche, les catégories A et B ont respectivement les couleurs rouge et bleu.
Sur le graphique de droite la catégorie A est absente des données du coup la catégorie B deviens rouge …

D’où ma question de début de post, comment affecter explicitement des couleurs aux diverses catégories afin d’éviter le shift de couleur ?