The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.

Mapping - map variables to the chart

Victor Perrier

2024-09-09

Introduction

There’s 3 ways with billboarder to pass data to construct a chart :

Data

We’ll use data about the french electricity production between 2012 and 2016 :

data("prod_par_filiere")
str(prod_par_filiere)
#> 'data.frame':    5 obs. of  11 variables:
#>  $ annee             : chr  "2012" "2013" "2014" "2015" ...
#>  $ prod_total        : num  542 550 540 547 531
#>  $ prod_therm        : num  48.1 43.6 25.9 34.4 45.9
#>  $ prod_hydraulique  : num  63.8 75.5 68.1 59.1 63.9
#>  $ prod_bioenergies  : num  5.8 7.1 7.5 8 8.5
#>  $ prod_eolien       : num  14.9 15.9 17.1 21.1 20.7
#>  $ prod_therm_charbon: num  17.4 19.9 8.4 8.6 7.3
#>  $ prod_solaire      : num  4.1 4.7 5.9 7.4 8.3
#>  $ prod_therm_gaz    : num  24 19.9 14.3 21.9 35.3
#>  $ prod_nucleaire    : num  405 404 416 417 384
#>  $ prod_therm_fioul  : num  6.7 3.8 3.3 3.8 3.3

First method : use a data.frame

For creating this simple barchart, we need to use two columns of our data.frame

billboarder() %>% 
  bb_barchart(data = prod_par_filiere[, c("annee", "prod_bioenergies")])

Variable annee is used on the x-axis, and prod_bioenergies as y values.

This is similar for line chart :

billboarder() %>% 
  bb_linechart(data = prod_par_filiere[, c("annee", "prod_bioenergies")])

Second method : with mapping

We can pass our data to function billboarder and then call bb_aes to specify which variable to use :

billboarder(data = prod_par_filiere) %>% 
  bb_aes(x = annee, y = prod_bioenergies) %>% 
  bb_barchart()

You don’t have to pass arguments to bb_barchart.

This is the same for line chart :

billboarder(data = prod_par_filiere) %>% 
  bb_aes(x = annee, y = prod_bioenergies) %>% 
  bb_linechart()

Third method : mapping inside function

Mapping can be specified inside the function which specify the type of chart :

billboarder(data = prod_par_filiere) %>% 
  bb_barchart(mapping = bbaes(x = annee, y = prod_bioenergies))

The function to map variables is bbaes without underscore.

For line chart :

billboarder(data = prod_par_filiere) %>% 
  bb_linechart(mapping = bbaes(x = annee, y = prod_bioenergies))

Grouping variable

Construct a chart with groups differ between the first method and the others. For the first one, data need to be in ‘wide’ format, the other need data in ‘long’ format with a grouping variable.

With ‘wide’ data :

billboarder() %>% 
  bb_barchart(
    data = prod_par_filiere[, c("annee", "prod_bioenergies", "prod_eolien", "prod_solaire", "prod_hydraulique")]
  )

with ‘long’ data :

# prepare data
data("prod_filiere_long")
prod_filiere_long <- prod_filiere_long[
  prod_filiere_long$branche %in% c("bioenergies", "eolien", "solaire", "hydraulique"), 
]
head(prod_filiere_long)
#>    annee     branche prod
#> 11  2012 hydraulique 63.8
#> 12  2013 hydraulique 75.5
#> 13  2014 hydraulique 68.1
#> 14  2015 hydraulique 59.1
#> 15  2016 hydraulique 63.9
#> 16  2012 bioenergies  5.8


billboarder(data = prod_filiere_long) %>% 
  bb_barchart(mapping = bbaes(x = annee, y = prod, group = branche))

Mapping with programming

In Shiny app or in function, you can use bbaes_string or bb_aes_string, these function accept character instead of unquoted variable names :

billboarder(data = prod_filiere_long) %>% 
  bb_barchart(mapping = bbaes_string(x = "annee", y = "prod", group = "branche"))

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.