Skip to contents

Helper to create charts in tooltips.

Usage

tooltip_chart(accesor = NULL, hc_opts = NULL, width = 250, height = 150)

Arguments

accesor

A string indicating the name of the column where the data is.

hc_opts

A list of options using the https://api.highcharts.com/highcharts/ syntax.

width

A numeric input in pixels indicating the with of the tooltip.

height

A numeric input in pixels indicating the height of the tooltip.

Details

This function needs to be used in the pointFormatter argument inside of hc_tooltip function an useHTML = TRUE option.

Examples


require(dplyr)
require(purrr)
require(tidyr)
#> Loading required package: tidyr
require(gapminder)
#> Loading required package: gapminder
data(gapminder, package = "gapminder")

gp <- gapminder %>%
  arrange(desc(year)) %>%
  distinct(country, .keep_all = TRUE)

gp2 <- gapminder %>%
  nest(-country) %>%
  mutate(
    data = map(data, mutate_mapping, hcaes(x = lifeExp, y = gdpPercap), drop = TRUE),
    data = map(data, list_parse)
  ) %>%
  rename(ttdata = data)
#> Warning: All elements of `...` must be named.
#> Did you want `data = -country`?

gptot <- left_join(gp, gp2)
#> Joining, by = "country"

hc <- hchart(
  gptot,
  "point",
  hcaes(
    lifeExp,
    gdpPercap,
    name = country,
    size = pop,
    group = continent
  )
) %>%
  hc_yAxis(type = "logarithmic")

hc %>%
  hc_tooltip(useHTML = TRUE, pointFormatter = tooltip_chart(accesor = "ttdata"))
hc %>% hc_tooltip(useHTML = TRUE, pointFormatter = tooltip_chart( accesor = "ttdata", hc_opts = list(chart = list(type = "column")) ))
hc %>% hc_tooltip( useHTML = TRUE, positioner = JS("function () { return { x: this.chart.plotLeft + 10, y: 10}; }"), pointFormatter = tooltip_chart( accesor = "ttdata", hc_opts = list( title = list(text = "point.country"), xAxis = list(title = list(text = "lifeExp")), yAxis = list(title = list(text = "gdpPercap")) ) ) )
hc %>% hc_tooltip( useHTML = TRUE, pointFormatter = tooltip_chart( accesor = "ttdata", hc_opts = list( legend = list(enabled = TRUE), series = list(list(color = "gray", name = "point.name")) ) ) )