## ----include = FALSE----------------------------------------------------------
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>",
  fig.width = 7,
  fig.height = 4.5
)

## ----setup--------------------------------------------------------------------
library(glyph)

## -----------------------------------------------------------------------------
glyph(mtcars, x = wt, y = mpg) |>
  mark_point(color = cyl) |>
  interact(tooltip = TRUE, hover = "enlarge") |>
  titles(title = "Motor Trend Cars")

## -----------------------------------------------------------------------------
glyph(mtcars, x = cyl, y = mpg) |>
  mark_bar() |>
  animate(transition = "slide", stagger = 50)

## -----------------------------------------------------------------------------
glyph(mtcars, x = wt, y = mpg) |>
  mark_point(color = cyl) |>
  interact(tooltip = TRUE) |>
  theme_tokens(preset = "dark") |>
  titles(title = "Dark Theme Example")

## -----------------------------------------------------------------------------
mtcars_named <- data.frame(model = rownames(mtcars), mtcars, row.names = NULL)

glyph(mtcars_named, x = wt, y = mpg) |>
  mark_point(color = cyl) |>
  mark_text(label = model, smart_repel = TRUE)

## -----------------------------------------------------------------------------
p1 <- glyph(mtcars, x = wt, y = mpg) |>
  mark_point(color = cyl) |>
  interact(brush = TRUE)

p2 <- glyph(mtcars, x = hp, y = mpg) |>
  mark_point(color = cyl) |>
  interact(brush = TRUE)

compose(p1, p2, type = "hstack", linked_selections = TRUE)

## -----------------------------------------------------------------------------
glyph(mtcars, x = wt, y = mpg) |>
  mark_point(color = cyl) |>
  facet(cols = cyl)

## -----------------------------------------------------------------------------
glyph(mtcars, x = wt, y = mpg) |>
  mark_point(color = cyl) |>
  marginals(x = "histogram", y = "density")

## -----------------------------------------------------------------------------
main_plot <- glyph(mtcars, x = wt, y = mpg) |> mark_point(color = cyl)
detail_plot <- glyph(mtcars, x = cyl, y = mpg) |> mark_bar()

inset(main_plot, detail_plot, position = "top-right")

## -----------------------------------------------------------------------------
glyph(mtcars, x = wt, y = mpg) |>
  mark_point(size = hp, color = cyl) |>
  animate(by = gear, transition = "morph", duration = 800)

## -----------------------------------------------------------------------------
glyph(mtcars, x = factor(cyl), y = mpg) |>
  mark_boxplot() |>
  interact(tooltip = TRUE, hover = "outline")

## -----------------------------------------------------------------------------
glyph(mtcars, x = factor(gear), y = mpg) |>
  mark_violin(color = factor(gear)) |>
  interact(tooltip = TRUE)

## -----------------------------------------------------------------------------
glyph(mtcars, x = factor(cyl), y = mpg) |>
  mark_violin(style = list(opacity = 0.2)) |>
  mark_sina() |>
  interact(tooltip = TRUE, brush = TRUE)

## -----------------------------------------------------------------------------
glyph(mtcars, x = mpg) |>
  mark_histogram(binwidth = 2.5, color = factor(am)) |>
  interact(tooltip = TRUE)

## -----------------------------------------------------------------------------
hulls <- do.call(rbind, lapply(split(mtcars, mtcars$cyl), function(d) {
  d[chull(d$wt, d$mpg), ]
}))

glyph(mtcars, x = wt, y = mpg) |>
  mark_polygon(data = hulls, group = factor(cyl), color = factor(cyl),
               style = list(opacity = 0.2)) |>
  mark_point(color = factor(cyl)) |>
  interact(tooltip = TRUE)

