Tour d’horizon des nouveautés de ggplot2, version 3.0.0.
Sommaire
ggplot2, version 3.0.0
Accueilli sur le CRAN le 5 juillet, ggplot2 version 3 amène avec lui sa liste de nouveautés. Tour d’horizon de quelques changements.
(Note : évidemment, le code de ce billet ne se reproduit que si vous avez la version 3.0.0 de ggplot2, au minimum).
packageVersion("ggplot2")
## [1] '3.0.0'
Hello tidyeval
La tidyeval, c’est quoi ? Rassures-toi lecteur, si tu n’es pas encore à la page, il est encore temps de te mettre à jour avec notre article « tidyeval », vous avez dit « tidyeval » ?, ou en parcourant le talk de Vincent aux rencontres R.
En clair, la tidyeval permet de programmer de manière non standard, à la manière de {dplyr}
.
C’est désormais possible directement dans ggplot2, qui exporte les verbes indispensables depuis {rlang}
.
library(ggplot2)
sepal_with <- function(col){
col <- enquo(col)
ggplot(iris) +
aes(Sepal.Width, !! col) +
geom_point()
}
sepal_with(Petal.Length)
Pour les vieux de la vieille de ggplot2 qui utilisaient aes_
et/ou aes_string
, cette nouvelle version en tidyeval vient remplacer ces fonctions, qui sont soft-deprecated (mais qui, bonne nouvelle, ne disparaitront pas pour le moment).
Cette introduction de la tidyeval s’est également accompagnée d’une nouvelle écriture pour le facetting, avec vars
:
ggplot(iris) +
aes(Sepal.Length, Sepal.Width) +
geom_point() +
facet_grid(rows = vars(Species))
ggplot(iris) +
aes(Sepal.Length, Sepal.Width) +
geom_point() +
facet_grid(cols = vars(Species))
Rassurez-vous, si vous êtes habitués aux formules, elles ne seront pas deprecated : il s’agit “juste” d’une nouvelle façon de l’écrire, plus facile à utiliser avec la tidyeval.
{sf} support
Pour les amoureux de cartographie, {ggplot2}
supporte désormais nativement les geom venus de {sf}
:
nc <- sf::st_read(system.file("shape/nc.shp", package = "sf"), quiet = TRUE)
ggplot(nc) +
geom_sf(aes(fill = AREA))
Vous ne connaissez pas encore {sf}
? Sebastien vous en parle dans son article suite aux Rencontres R.
Les deux fonctions supportées par cette nouvelle version étant :
geom_sf
coord_sf
Hello viridis !
Avant palette de couleur disponible dans un package externe, viridis est aujourd’hui nativement intégré dans {ggplot2}
. C’est d’ailleurs la palette par défaut quand on projette des facteurs ordonnés :
diamonds %>%
dplyr::count(cut, color) %>%
ggplot() +
aes(cut, n, fill = color) +
geom_col()
Les fonctions disponibles nativement sont :
scale_color_viridis_c
etscale_color_viridis_d
, pour les données numériques continues ou discrètesscale_fill_viridis_c
etscale_fill_viridis_d
, leur contreparie avecfill
Et pour comparer les deux :
ggplot(faithfuld) +
aes(waiting, eruptions, fill = density) +
geom_tile() +
scale_fill_viridis_c()
Contre la palette par défaut :
ggplot(faithfuld) +
aes(waiting, eruptions, fill = density) +
geom_tile()
Pour en savoir plus, n’hésitez pas à lire notre article sur rtask : ggplot2 : Welcome viridis !.
Tag ton plot
Si vous avez besoin de faire plusieurs graphes et de les annoter, l’option tag
vient de faire son apparition dans labs()
.
ggplot(iris) +
aes(Sepal.Width, Sepal.Length) +
geom_point() +
labs(tag = "A",
title = "Iris",
subtitle = "Sepal.Width, Sepal.Length")
La position de ce tag se gère ensuite avec plot.tag
/ plot.tag.position
:
ggplot(iris) +
aes(Sepal.Width, Sepal.Length) +
geom_point() +
labs(tag = "A",
title = "Iris",
subtitle = "Sepal.Width, Sepal.Length") +
theme(plot.tag.position = "bottomleft")
Les positions possibles étant : topleft
, top
, topright
, left
, right
, bottomleft
, bottom
, bottomright
. Utiles en cas de génération de plusieurs graphes !
geom_point(shape = “diamond”)
Les fonctions de la famille de geom_point
peuvent maintenant recevoir un nom de forme, plutôt qu’uniquement un chiffre :
ggplot(iris) +
aes(Sepal.Width, Sepal.Length) +
geom_point(shape = "plus") +
labs(tag = "A",
title = "Iris",
subtitle = "Sepal.Width, Sepal.Length")
Mais bien sûr, il y a eu plein d’autres changements —pour en savoir plus : ggplot2 News !
Laisser un commentaire