Comment utiliser un arrière-plan transparent dans ggplot2
Vous pouvez utiliser la syntaxe suivante pour créer un arrière-plan transparent dans un tracé dans ggplot2 :
p + theme( panel.background = element_rect(fill='transparent'), #transparent panel bg plot.background = element_rect(fill='transparent', color=NA), #transparent plot bg panel.grid.major = element_blank(), #remove major gridlines panel.grid.minor = element_blank(), #remove minor gridlines legend.background = element_rect(fill='transparent'), #transparent legend bg legend.box.background = element_rect(fill='transparent') #transparent legend panel )
Si vous décidez d’exporter le tracé à l’aide de ggsave() , veillez à spécifier que l’arrière-plan doit être transparent :
ggsave('myplot.png', p, bg='transparent')
L’exemple suivant montre comment utiliser cette syntaxe dans la pratique.
Exemple : utiliser un arrière-plan transparent dans ggplot2
Le code suivant montre comment créer un simple boxplot groupé dans ggplot2 :
library(ggplot2) #make this example reproducible set.seed(1) #create dataset data <- data.frame(team=rep(c('A', 'B', 'C'), each=50), program=rep(c('low', 'high'), each=25), values=seq(1:150)+sample(1:100, 150, replace=TRUE)) #create boxplot ggplot(data, aes(x=team, y=values, fill=program)) + geom_boxplot()
Nous pouvons utiliser le code suivant pour créer un arrière-plan transparent pour le tracé :
library(ggplot2) #make this example reproducible set.seed(1) #create dataset data <- data.frame(team=rep(c('A', 'B', 'C'), each=50), program=rep(c('low', 'high'), each=25), values=seq(1:150)+sample(1:100, 150, replace=TRUE)) #create boxplot p <- ggplot(data, aes(x=team, y=values, fill=program)) + geom_boxplot() + theme( panel.background = element_rect(fill='transparent'), plot.background = element_rect(fill='transparent', color=NA), panel.grid.major = element_blank(), panel.grid.minor = element_blank(), legend.background = element_rect(fill='transparent'), legend.box.background = element_rect(fill='transparent') ) #display boxplot p
On peut ensuite exporter ce tracé vers un fichier PNG, en précisant que le fond doit être transparent dans l’image exportée :
ggsave('grouped_boxplot.png', p, bg='transparent')
Si j’ouvre ce fichier exporté sur mon ordinateur, je constate que le fond est bien transparent :
Ressources additionnelles
Comment changer la taille de la police dans ggplot2
Comment supprimer une légende dans ggplot2
Comment supprimer le quadrillage dans ggplot2