Skip to contents

An R package for creating interactive d3.js visualizations using htmlwidgets. Supports 17 chart types including scatter plots, line charts, bar charts, treemaps, and more — all composable through a piped API.

Live Demo

Installation

# install.packages("devtools")
devtools::install_github("mortonanalytics/myIO")

Usage

Build plots by piping layers together with myIO() and addIoLayer():

library(myIO)

myIO() |>
  addIoLayer(
    type = "point",
    color = "#E69F00",
    label = "points",
    data = mtcars,
    mapping = list(x_var = "wt", y_var = "mpg")
  ) |>
  addIoLayer(
    type = "line",
    transform = "lm",
    color = "red",
    label = "trend",
    data = mtcars,
    mapping = list(x_var = "wt", y_var = "mpg")
  )

Supported Chart Types

Type type value
Scatter plot "point"
Line chart "line"
Bar chart "bar"
Grouped bar chart "groupedBar"
Area chart "area"
Histogram "histogram"
Heatmap "heatmap"
Candlestick "candlestick"
Waterfall "waterfall"
Sankey "sankey"
Boxplot "boxplot"
Violin "violin"
Ridgeline "ridgeline"
Donut chart "donut"
Gauge chart "gauge"
Hexbin plot "hexbin"
Treemap "treemap"

addIoLayer()

Argument Description
type Chart type (see table above)
color Any CSS color string
label Unique identifier for the layer
data A data frame
mapping List mapping variables, e.g. list(x_var = "wt", y_var = "mpg")
transform Optional derived-data transform, e.g. "identity" or "lm"

Interactions

myIO charts are bidirectional — user actions flow back as structured data:

  • setBrush() — Rectangle select returns selected rows as data
  • setAnnotation() — Click to label data points; export annotations as CSV
  • setLinked() — Crosstalk linked brushing across multiple charts
  • setSlider() — Parameter sliders that trigger Shiny recomputation

Customization

Customize plots by chaining additional functions:

See the Getting Started, Chart Types, Shiny Integration, and Transforms & Theming vignettes for full examples.