## ----include = FALSE----------------------------------------------------------
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>",
  fig.width = 7,
  fig.height = 4.5
)

## ----setup, warning = FALSE---------------------------------------------------
library(rsgl)
library(duckdb)

con <- dbConnect(duckdb())

## -----------------------------------------------------------------------------
dbWriteTable(con, "cars", cars)
dbGetQuery(con, "
  select *
  from cars
  limit 5
")

## -----------------------------------------------------------------------------
dbGetPlot(con, "
  visualize
    horsepower as x,
    miles_per_gallon as y
  from cars
  using points
")

## -----------------------------------------------------------------------------
dbGetPlot(con, "
  visualize
    horsepower as x,
    miles_per_gallon as y
  from cars
  using (
    points
    layer
    regression line
  )
  facet by
    origin
  scale by
    log(x),
    log(y)
")

## -----------------------------------------------------------------------------
dbGetPlot(con, "
  visualize
    bin(miles_per_gallon) as x,
    count(*) as y
  from cars
  group by
    bin(miles_per_gallon)
  using bars
")

## -----------------------------------------------------------------------------
dbGetPlot(con, "
  visualize
    origin as x,
    miles_per_gallon as y
  from cars
  using boxes
  scale by
    log(y)
")

## -----------------------------------------------------------------------------
dbWriteTable(con, "trees", trees)
dbGetQuery(con, "
  select *
  from trees
  limit 5
")

## -----------------------------------------------------------------------------
dbGetPlot(con, "
  visualize
    age as x,
    circumference as y
  from trees
  collect by
    tree_id
  using lines
")

## -----------------------------------------------------------------------------
dbGetPlot(con, "
  visualize
    age as theta,
    radius as r
  from (
    select
      *,
      circumference/(2*pi()) as radius
    from trees
  )
  collect by
    tree_id
  using lines
")

