| highdir-package | R Documentation |
highdir provides a unified API for building interactive figures with highcharter or static figures with ggplot2. A figure is described once as a data-mapping object (hd_spec) and an optional presentation object (hd_opts), then rendered to either backend without changing the calling code.
library(highdir)
# -- 1. Sample data --------------------------------------------------------
df <- data.frame(
age = rep(c("18-24", "25-34", "35-44", "45-54"), each = 2),
sex = rep(c("Male", "Female"), 4),
pct = c(42, 38, 55, 61, 48, 52, 60, 57),
n = c(120, 115, 200, 210, 180, 175, 160, 155)
)
# -- 2. Describe the data mapping (once) ----------------------------------
spec <- hd_spec(df, x = "age", y = "pct", group = "sex", n = "n",
ylab = "Percentage (%)")
# -- 3. Describe the presentation (reusable across specs) -----------------
opts <- hd_opts(title = "Health survey results",
subtitle = "Source: FHI 2024",
caption = "Tall om helse",
ylim = c(0, 80))
# -- 4. Render — swap backend without touching spec or opts ----------------
hd_make(spec, "column", opts) # interactive HC
hd_make(spec, "column", opts, backend = "static") # static ggplot2
hd_make(spec, "line", opts, smooth = TRUE) # HC spline
hd_make(spec, "line", opts, backend = "static") # gg line
hd_make(spec, "scatter") # HC scatter
# Donut chart
hd_make(pie_spec, "pie", pie_opts, inner_size = "50%")
# -- 5. Arearange (confidence intervals) ----------------------------------
df2 <- cbind(df, lo = df$pct - 5, hi = df$pct + 5)
spec2 <- hd_spec(df2, "age", "pct", group = "sex")
hd_make(spec2, "arearange", opts, ymin = "lo", ymax = "hi")
# -- 6. Save to disk -------------------------------------------------------
hd_save(hd_make(spec, "column", opts), "chart.html")
hd_save(hd_make(spec, "column", opts, backend="static"), "chart.png")
# -- 7. Session-wide styling -----------------------------------------------
hd_set_theme(hc_theme = "economist",
colors = c("#025169","#7C145C","#C68803"))
# -- 8. Launch the Shiny GUI -----------------------------------------------
hd_app()
| Function | Purpose |
hd_spec() | Describe data mapping (x, y, group, n, labels) |
hd_opts() | Describe presentation (title, ylim, colours, theme) |
hd_make() | Render spec + opts → highchart or ggplot |
hd_save() | Export to HTML / JSON / PNG / SVG / PDF |
hd_set_theme() | Session-wide colour / font / theme defaults |
hd_theme() | Build a highcharter theme object directly |
hd_add_js() | Inject custom JS into a highchart |
register_geom() | Add a custom geometry |
register_backend() | Add a custom rendering backend |
register_palette() | Add a named colour palette |
list_geoms() | Show available geometries |
list_modes() | Show available backends |
list_palettes() | Show available palettes |
hd_app() | Launch the Shiny GUI |
Maintainer: Yusman Kamaleri ybkamaleri@gmail.com (ORCID)
Authors:
Yusman Kamaleri ybkamaleri@gmail.com (ORCID)
Useful links:
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.