Helper to create charts in tooltips.
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
#>
#> Attaching package: ‘tidyr’
#> The following object is masked from ‘package:igraph’:
#>
#> crossing
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: Supplying `...` without names was deprecated in tidyr 1.0.0.
#> ℹ Please specify a name for each selection.
#> ℹ Did you want `data = -country`?
gptot <- left_join(gp, gp2)
#> Joining with `by = join_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"))
)
)
)
