Skip to contents

fonctionr dispose de quelques fonctions purement graphiques. Leur objectif est soit d’uniformiser les graphiques pour une publication, soit de produire des graphiques originaux à partir de résultats déjà calculés. Ces fonctions ne sont pas toutes très élaborées mais peuvent s’avérer utiles. Nous les décrivons sur cette page.

theme_fonctionr() & load_and_active_fonts()

theme_fonctionr() est une fonction qui permet d’appliquer le thème de fonctionr à un objet ggplot2. Cette fonction a un intérêt si l’on veut uniformiser l’esthétique de tous les graphiques pour une publication - ceux qui sont produits avec fonctionr et ceux qui ne le sont pas. L’argument font permet d’indiquer la police d’écriture à utiliser : une police disponible sur votre système ou une de celles directement contenues dans fonctionr. La fonction load_and_active_fonts() est automatiquement exécutée lorsque theme_fonctionr() est appliqué : celle-ci a pour but de rendre disponibles les polices incluses dans le package. Cette fonction est par ailleurs autonome et permet de charger facilement les polices d’écriture contenues dans fonctionr afin de les rendre disponibles pour n’importe quelle utilisation avec ggplot2. Voir la documentation de la fonction pour connaître les polices incluses dans le package.

# Loading of data
data(eusilc, package = "laeken")

tab1 <- eusilc |>
  as_survey_design(ids = db030, strata = db040, weights = rb050) |>
  group_by(pb220a) |>
  summarise(
    prop = survey_mean(eqIncome > 10000, proportion = T, vartype = "ci", na.rm = T)
  )

ggtab1 <- tab1 |>
  ggplot(aes(x = pb220a, y = prop)) +
  geom_col() +
  labs(title = "I'm a graphic") +
  coord_flip()

ggtab2 <- ggtab1 +
  theme_fonctionr(font = "Montserrat")

ggtab1 | ggtab2

esth_graph()

esth_graph() est une fonction qui permet de construire facilement une graphique similaire à ceux produit par les autres fonction mais directement à partir d’une tableau de résultats calculé antérieurement. Cette fonction a un intérêt si l’on veut appliquer l’esthétique graphique de fonctionr mais à des indicateurs qui ne sont pas calculés par une fonction de fonctionr. esth_graph() permet aisément d’intégrer plusieurs éléments que l’on retrouve dans d’autres graphiques produits par fonctionr : valeurs de l’indicateur, bornes d’intervalle de confiance, nombres d’individus dans l’échantillon. La logique d’esth_graph() est différente de celle de theme_fonctionr() : la première fonction produit un graphique à partir d’une table, alors que la seconde applique un thème à un graphique existant.

En comparaison des autres fonctions, esth_graph() n’a pas d’argument data, mais un argument tab qui doit correspondre à la table avec les indicateurs (il s’appelle tab car il doit être similaire à l’objet tab produit par la plupart des fonctions de fonctionr). Les arguments var et value sont obligatoires et ils indiquent respectivement les colonnes dans tab avec nom de l’indicateur et sa valeur. reorder et show_value. error_low, error_upp et n_var permettent d’indiquer les colonnes dans tab où se trouvent les bornes inférieures et supérieures des barres d’erreurs et le nombre de personnes dans l’échantillon. Par défaut, ces arguments ont une valeur NULL, ce qui conduit à ne pas montrer ces éléments dans le graphique. name_total permet d’indiquer le nom du total dans tab de manière à ce que cette valeur soit mise en évidence (couleur et position) dans le graphique.

tab2 <- eusilc |>
  as_survey_design(ids = db030, strata = db040, weights = rb050) |>
  group_by(db040) |>
  cascade(
    mean = survey_mean(eqIncome, vartype = "ci"),
    n = unweighted(n()),
    .fill = "Total"
  )

esth_graph(tab2,
  value = mean,
  var = db040,
  error_low = mean_low,
  error_upp = mean_upp,
  n_var = n,
  name_total = "Total",
  reorder = T,
  digits = 1,
  unit = "€"
)

make_surface()

make_surface() permet de créer la représentation de différentes valeurs déja calculées en tant que surfaces - sous la forme de carrés. Il s’agit d’un graphique potentiellement intéressant si l’on veut représenter la taille des logements en m², par exemple. La fonction est purement graphique ; elle s’applique sur un dataframe de plusieurs lignes comprenant les modalités/groupes à comparer (argument var) et la valeur pour chacun d’eux (value). La fonction est donc idéalement applicable au dataframe tab produit par central_group(). Notre package fonctionr étant destiné à l’analyse inférentielle, les bornes supérieures et inférieures des intervalles de confiance peuvent être indiquées (error_low et error_upp) ; elles sont alors affichées sur le graphique d’une manière originale, comme carrés en pointillés autour de la valeur dans l’échantillon (show_ci = FALSE pour les désactiver). L’ordonnancement des modalités selon la valeur est possible avec l’argument reorder = TRUE.

eusilc$pl030_rec <- NA
eusilc$pl030_rec[eusilc$pl030 == "1"] <- "Working full time"
eusilc$pl030_rec[eusilc$pl030 == "2"] <- "Working part time"
eusilc$pl030_rec[eusilc$pl030 == "3"] <- "Unemployed"
eusilc$pl030_rec[eusilc$pl030 == "4"] <- "Student"
eusilc$pl030_rec[eusilc$pl030 == "5"] <- "Retired"
eusilc$pl030_rec[eusilc$pl030 == "6"] <- "Permanently disabled"
eusilc$pl030_rec[eusilc$pl030 == "7"] <- "Fulfilling domestic tasks"

eusilc_mean <- mean_group(
  eusilc,
  group = pl030_rec,
  quanti_exp = py010n + py050n + py090n + py100n + py110n + py120n + py130n + py140n,
  filter_exp = !pl030_rec %in% c("Student", "Fulfilling domestic tasks") & db040 == "Tyrol",
  weights = rb050
)
eusilc_mean$tab |> 
  make_surface(
    var = pl030_rec,
    value = mean,
    error_low = mean_low,
    error_upp = mean_upp,
    reorder = T,
    wrap_width_lab = 15,
    unit = "€",
    title = "Equivalised income in household by socio-economic status",
    subtitle = "Example with austrian SILC data from 'laeken' package"
  )

La fonction dispose de plusieurs options graphiques. Elle peut afficher des facettes en renseignant la variable dans l’argument facet (le dataframe doit être au format tidy). Le réordonnancement des modalités fonctionne également avec des facettes : dans ce cas, les couleurs des carrés permettent de facilement repérer l’ordre différent par modalité de facette ; on peut indiquer dans pal n’importe quelle des palettes de couleur des packages MetBrewer, MoMAColors ou PrettyCols. L’argument compare = TRUE permet d’afficher la surface la plus petite en surimposition de chaque carré (par modalité de facette le cas échéant), pour facilement visualiser les inégalités entre les groupes. L’argument position permet de régler l’alignement des surfaces au centre ou en bas ("mid" ou "bottom"). L’argument bg (qui signifie background) permet de définir la couleur du fond.

eusilc_mean_region <- mean_group(
  eusilc,
  group = pl030_rec,
  facet = db040,
  quanti_exp = py010n + py050n + py090n + py100n + py110n + py120n + py130n + py140n,
  filter_exp = !pl030_rec %in% c("Student", "Fulfilling domestic tasks") & db040 %in% c("Tyrol", "Upper Austria", "Vienna", "Vorarlberg"),
  weights = rb050
)
eusilc_mean_region$tab |> 
  make_surface(
    var = pl030_rec,
    facet = db040,
    value = mean,
    error_low = mean_low,
    error_upp = mean_upp,
    reorder = T,
    show_ci = F,    
    compare = T,
    bg = "lightgoldenrod1",
    position = "bottom",
    wrap_width_lab = 15,
    unit = "€",
    pal = "Lively",
    title = "Equivalised income in household by socio-economic status",
    subtitle = "Example with austrian SILC data from 'laeken' package"
  )