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
.
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) )
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)
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")
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 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 only need one value :
billboarder() %>% bb_gaugechart(value = 64)
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.