Introduction

Le package scales (version >= 1.1.0) permet

library("dplyr")
library("ggplot2")
library("scales")

# pour centrer les titres des graphiques ggplot2
theme_update(plot.title = element_text(hjust = 0.5))

donnees = ggplot2::diamonds %>% select(qualite_taille = cut) %>% group_by(qualite_taille) %>% 
  summarise(nb = n()) %>% mutate(pct = nb / sum(nb)) %>% as.data.frame

Dans des tableaux

donnees %>% mutate(nb_milliers = number(nb),
                             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

dtf = ggplot2::economics %>% rename(dates = date)

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))

retour au debut du document