library(billboarder)

We’ll use two datasets : one in wide format and one in long format to use with mapping. Here how two create the datasets :

# wide format
wide <- data.frame(
  index = seq_len(100),
  Sine = sin(1:100/10),
  Cosine = 0.5 * cos(1:100/10),
  Sine2 = sin(1:100/10) * 0.25 + 0.5
)
# long format (to use with mapping)
long <- reshape(
  data = wide,
  times = c("Sine", "Cosine", "Sine2"),
  varying = list(2:4),
  idvar = "index",
  direction = "long",
  v.names = "value"
)

Type of lines

You can change type of line with type argument, available choices are : line, spline, step, area, area-spline, area-step, area-line-range, and area-spline-range. Some examples :

billboarder(height = "200px") %>%
  bb_linechart(data = wide, type = "spline")
billboarder(height = "200px") %>%
  bb_linechart(data = wide, type = "step")
billboarder(height = "200px") %>%
  bb_linechart(data = wide, type = "area")

You can use different types for each lines :

billboarder() %>%
  bb_linechart(data = wide, type = c("area", "spline", "step"))

With mapping :

billboarder() %>%
  bb_linechart(
    data = long,
    mapping = bbaes(index, value, group = time),
    type = c("area", "spline", "step")
  )

Dash array

You can use a pattern of dashes and gaps for a line by specifying argument dasharray. Possible values are :

  • a numeric : length of dashes and length of gaps are the same
  • a character under the format "x1 y1 x2..." : first dash will be length x1, following gap length y1, …

Example :

billboarder() %>%
  bb_linechart(data = wide, dasharray = 4)
billboarder() %>%
  bb_linechart(data = wide, dasharray = "6 2 1 2")

To use different patterns, use a vector with the same length as the data (use 0 for no dash) :

billboarder() %>%
  bb_linechart(data = wide, dasharray = c("0", "4 2", "8 3 2 3"))

With mapping :

billboarder() %>%
  bb_linechart(
    data = long,
    mapping = bbaes(index, value, group = time),
    dasharray = c("2", "4 2", "8 3 2 3")
  )

Width

Lines width can be define with width argument :

billboarder() %>%
  bb_linechart(data = wide, width = 3)

Use a vector with same length as lines to use different widths :

billboarder() %>%
  bb_linechart(data = wide, width = c(1, 4, 8))

With mapping :

billboarder() %>%
  bb_linechart(
    data = long,
    mapping = bbaes(index, value, group = time),
    width = c(1, 4, 8)
  )

Use both dasharray and width

You can use both at the same time :

billboarder() %>%
  bb_linechart(
    data = long,
    mapping = bbaes(index, value, group = time),
    dasharray = c("2", "4 2", "8 3 2 3"),
    width = c(1, 4, 8)
  )