---
title: "Quick start"
output: rmarkdown::html_vignette
vignette: >
%\VignetteIndexEntry{Quick start}
%\VignetteEngine{knitr::rmarkdown}
%\VignetteEncoding{UTF-8}
---
```{r, include = FALSE}
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>"
)
library(highdir)
```
There are two ways to use `highdir`:
1. Declarative API approach
2. Layered API approach
## Declarative API
```{r setup, eval = FALSE}
library(highdir)
# Create dataset
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)
)
# Figure data specification
spec <- hd_spec(df, x = "age", y = "pct", group = "sex", n = "n")
# Specify figure presentation
opts <- hd_opts(title = "Tall om Report",
subtitle = "Source: Example data",
caption = "Tall om helse",
ylim = c(0, 80))
hd_make(spec, "column", opts) # highcharter (default)
hd_make(spec, "column", opts, backend = "ggplot2") # static ggplot2
hd_make(spec, "line", opts, smooth = TRUE) # smooth spline
hd_make(spec, "pie", opts) # pie / donut
# Disable JavaScript (for static HTML export)
hd_make(spec, "column", opts, use_js = FALSE)
# Save
hd01 <- hd_make(spec, "column")
hd_save(fig = hd01, file = "chart.html")
gg01 <- hd_make(spec, "column", backend = "ggplot2")
hd_save(fig = gg01, file = "chart.png")
```
## Layered API
```{r gg, eval = FALSE}
# Interactive
hd(df, x = "age", y = "pct", group = "sex", n = "n") +
hd_geom_column() +
hd_opts(title = "Tall om Report",
subtitle = "Source: Example data",
caption = "Tall om helse",
ylim = c(0, 80))
# Static ggplot2
hd(df, x = "age", y = "pct", group = "sex", n = "n", backend = "ggplot2") +
hd_geom_column() +
hd_opts(title = "Tall om Report",
subtitle = "Source: Example data",
caption = "Tall om helse",
ylim = c(0, 80))
```
For more example on how to use other geoms, please read in
[other geom examples](https://folkehelsestats.github.io/highdir/articles/examples.html)
## Geom
To list all geom features.
```{r geom}
list_geoms()
```