Pour un ggplot2
j'aimerais modifier l'esthétique par défaut de certains éléments du thème geom
Disons que je veux des points rouges au lieu de points noirs.
De cette réponse Je sais que l'on peut modifier les valeurs par défaut d'une geom
en utilisant la fonction update_geom_default
mais je me demande s'il est possible de changer la couleur uniquement lorsque nous appelons theme_red_dots
?
Exemple de ma tentative naïve :
library(ggplot2)
theme_red_dots <- function(...) {
update_geom_defaults("point", list(colour = "red"))
theme_minimal() +
theme(...)
}
Ça a l'air bien ici :
ggplot(mtcars, aes(mpg, disp)) +
geom_point() +
theme_red_dots()
Mais j'aimerais que les points soient à nouveau noirs quand j'appelle
ggplot(mtcars, aes(mpg, disp)) +
geom_point()
Merci d'avance !
Vous trouverez ci-dessous un exemple des raisons pour lesquelles j'ai pensé que cela pourrait être utile. Nous pouvons changer panel.background
pour être noir assez facilement mais cela rendrait impossible de voir les points si nous ne faisons pas correspondre une esthétique à une couleur. (L'utilité de cette theme_black
peut certainement être discutée, mais je voudrais éviter un débat à ce sujet).
theme_black <- function(...) {
theme_minimal() +
theme(panel.background = element_rect(fill = "black")) +
theme(...)
}
# update_geom_defaults("point", list(colour = "black"))
ggplot(mtcars, aes(mpg, disp)) +
geom_point() +
theme_black()
Changer la couleur des points à l'intérieur geom_point()
est une option ici (voir la réponse de @zx8754), mais cela nécessite l'utilisation de theme_black()
pour le changer, alors que je me demande s'il y a un moyen de le faire directement à l'intérieur de theme_*
.