Dans ce notebook, ous allons représenter la donnée à l’aide d’un streamgraph.
Chargeons les librairies, lisons nos données :
library(tidyverse)
source("helpers.R", encoding = "UTF-8")
flux <- read_csv("../data/obs_artif_conso_com_2009_2020_V2.csv")
Récupérons aussi notre palette de couleurs :
myPalette <- readRDS("myPalette.rds")
devtools::install_github("hrbrmstr/streamgraph")
Récupérons les données de flux d’Aix-en-Provence :
df <- flux %>% getStatsFlux("13001")
## Note: Using an external vector in selections is ambiguous.
## i Use `all_of(myCols)` instead of `myCols` to silence this message.
## i See <https://tidyselect.r-lib.org/reference/faq-external-vector.html>.
## This message is displayed once per session.
Réalisons le streamgraph sur Aix-en-Provence :
library(streamgraph)
# L'ordre des inverse dans les streamgraphs
df$type <- factor(df$type, levels = c("Inconnu", "Mixte", "Activité", "Habitat"))
# Plot
df %>%
streamgraph("type", "value", "year", sort = FALSE) %>%
sg_axis_x(1, "Année", "%Y") %>%
sg_fill_manual(rev(myPalette))
factor
permet de définir l’ordre d’affichage des entités. Et nous utilisonsrev(myPalette)
carstreamgraph
inverse la palette.
makeStream
Nous pouvons créer une fonction qui retourne le streamgraph de n’importe quelle commune :
makeStream <- function(flux, codeInsee) {
df <- flux %>% getStatsFlux(codeInsee)
# L'ordre des inverse dans les streamgraphs
df$type <- factor(df$type, levels = c("Inconnu", "Mixte", "Activité", "Habitat"))
# Plot
df %>%
streamgraph("type", "value", "year", sort = FALSE) %>%
sg_axis_x(1, "Année", "%Y") %>%
sg_fill_manual(rev(myPalette))
}
Voici une utilisation de la fonction makeStream
sur Marseille :
flux %>% makeStream("13055")
## Warning in widget_html(name = class(x)[1], package = attr(x, "package"), :
## streamgraph_html returned an object of class `list` instead of a `shiny.tag`.
Ou sur Toulon :
flux %>% makeStream("83137")
## Warning in widget_html(name = class(x)[1], package = attr(x, "package"), :
## streamgraph_html returned an object of class `list` instead of a `shiny.tag`.
Cette fonction nous sera bien utile dans l’application Shiny.
Voici selon moi les dimensions d’une dataviz :