Introduction
Le package scales (version >= 1.1.0) permet
- de mettre en forme facilement les nombres et pourcentages avec les fonctions number, label_number_si et percent
- de formatter les dates avec des fonctions comme label_date_short
- de controler l’ecart
library("dplyr")
library("ggplot2")
library("scales")
# pour centrer les titres des graphiques ggplot2
theme_update(plot.title = element_text(hjust = 0.5))
= ggplot2::diamonds %>% select(qualite_taille = cut) %>% group_by(qualite_taille) %>%
donnees summarise(nb = n()) %>% mutate(pct = nb / sum(nb)) %>% as.data.frame
Dans des tableaux
%>% mutate(nb_milliers = number(nb),
donnees nb_arrondi = number(nb, accuracy = 100),
nb_suffixe = number(nb, suffix = " passagers"),
pct_pct = percent(pct),
pct_virgule = percent(pct, decimal.mark = ",")) %>% knitr::kable()
qualite_taille | nb | pct | nb_milliers | nb_arrondi | nb_suffixe | pct_pct | pct_virgule |
---|---|---|---|---|---|---|---|
Fair | 1610 | 0.0298480 | 1 610 | 1 600 | 1 610 passagers | 3.0% | 3,0% |
Good | 4906 | 0.0909529 | 4 906 | 4 900 | 4 906 passagers | 9.1% | 9,1% |
Very Good | 12082 | 0.2239896 | 12 082 | 12 100 | 12 082 passagers | 22.4% | 22,4% |
Premium | 13791 | 0.2556730 | 13 791 | 13 800 | 13 791 passagers | 25.6% | 25,6% |
Ideal | 21551 | 0.3995365 | 21 551 | 21 600 | 21 551 passagers | 40.0% | 40,0% |
Dans des graphiques
% et separateur decimal
ggplot(donnees, aes(qualite_taille, pct)) + geom_col() + ggtitle("% de diamants par couleur") +
scale_y_continuous(labels = percent)
ggplot(donnees, aes(qualite_taille, pct)) + geom_col() + ggtitle("% de diamants par couleur") +
scale_y_continuous(labels= function(x) percent(x, decimal.mark=",")) +labs(y = "pct a virgule")
Marques, etiquettes, format scientifique
= ggplot2::economics %>% rename(dates = date)
dtf
ggplot(dtf, aes(x = dates, y = unemploy, group = 0)) + geom_line() + ggtitle("Sans scales")
ggplot(dtf, aes(x = dates, y = unemploy, group = 0)) + geom_line() +
scale_x_date(breaks = breaks_width("15 years")) + ggtitle("Une marque tous les 15 ans")
ggplot(dtf, aes(x = dates, y = unemploy, group = 0)) + geom_line() +
scale_x_date(breaks = breaks_width("15 years"),
labels = label_date_short()) +
ggtitle("Une marque tous les 15 ans et une etiquette courte")
ggplot(dtf, aes(x = dates, y = unemploy, group = 0)) + geom_line() +
scale_x_date(breaks = breaks_width("15 years"),
labels = label_date_short()) +
scale_y_continuous(labels = label_number_si()) +
# titre long mis sur deux lignes
ggtitle(stringr::str_wrap("Une marque tous les 15 ans et des etiquettes courtes sur chaque axe",
width = 40))