Introduction - basic use

knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>",
  screenshot.force = FALSE
)
library("billboarder")

This package allow you to use billboard.js, a re-usable easy interface JavaScript chart library, based on D3 v4+.

Supported chart types:

The main function is billboarder, all charts begin with. You can add layer to your charts with function bb_*, these functions correspond to a billboard option define in the API docs. There are helpers functions to quickly create a type of chart (bb_barchart, bb_linechart, bb_piechart, bb_donutchart, bb_gauge, bb_scatterplot), they have to be called after billboarder.

Bar chart

You can create a simple bar chart by passing a data.frame to bb_barchart, the first column will be used as the x-axis, and the second one as the y-axis :

library("billboarder")

df <- as.data.frame(table(sample(letters[1:5], 50, TRUE)))
df

billboarder() %>% 
  bb_barchart(data = df)

If you want to create a grouped bar chart, first option is to put your data in a "wide" format. Here we use stats::reshape, but I recommend to use tidyr::spread or data.table::dcast.

df <- as.data.frame(table(
  sample(letters[1:5], 50, TRUE),
  sample(LETTERS[1:5], 50, TRUE)
))
df.r <- reshape(data = df, idvar = "Var1", timevar = "Var2", direction = "wide")
df.r

billboarder() %>% 
  bb_barchart(data = df.r)

Second option is to define a mapping of your variable with function bbaes (for more example of mapping, see vignette billboarder-mapping).

billboarder() %>% 
  bb_barchart(
    data = df,
    mapping = bbaes(x = Var1, y = Freq, group = Var2)
  )

Line chart

You can pass to the function bb_linechart a vector, in that case x-axis will be the index of that vector :

billboarder() %>% 
  bb_linechart(data = sin(seq(-pi, pi, length.out = 10)))

You can change the type of line with argument type, for example an area-step :

billboarder() %>% 
  bb_linechart(data = sin(seq(-pi, pi, length.out = 10)), type = "area-step")

If want to specify a variable to map to the x-axis, you had to pass a data.frame to the function :

df <- data.frame(
  var_x = seq(-pi, pi, length.out = 10),
  sin = sin(seq(-pi, pi, length.out = 10))
)
df

billboarder() %>% 
  bb_linechart(data = df, x = "var_x")

If the first variable of the data.frame is a Date or a POSIX, it will be automatically mapped to the x-axis :

df <- data.frame(
  date = seq.Date(from = as.Date("2017-06-12"), by = "day", length.out = 10),
  var = rnorm(10)
)
df

billboarder() %>% 
  bb_linechart(data = df)

Scatter plot

For scatter plot, use a two column data.frame with function bb_scatterplot, or specify the x variable and the y variable (you can also specify a grouping variable) :

billboarder() %>% 
  bb_scatterplot(data = iris[, 1:2])

billboarder() %>% 
  bb_scatterplot(data = iris, x = "Petal.Length", y = "Petal.Width", group = "Species")

Pie chart

For pie chart, use bb_piechart with a two column data.frame :

df <- data.frame(
  var = c("A", "B"),
  count = c(457, 987)
)

billboarder() %>% 
  bb_piechart(data = df)

Donut chart

Donut charts works the same as pie charts :

df <- data.frame(
  var = c("A", "B"),
  count = c(687, 246)
)

billboarder() %>% 
  bb_donutchart(data = df)

Note : pie and donut are automatically sorted, you can change that with bb_data(order = NULL).

Gauge chart

Gauge only need one value :

billboarder() %>% 
  bb_gaugechart(value = 64)


Try the billboarder package in your browser

Any scripts or data that you put into this service are public.

billboarder documentation built on Sept. 29, 2023, 5:07 p.m.