Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

738 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

R-CMD-check WebR compatibility R coverage JS coverage Lifecycle: stable License: MIT version

myIO

An R package for creating interactive d3.js visualizations using htmlwidgets. Supports 36 chart types including scatter plots, line charts, uncertainty views, statistical composites, 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
  • addKeyframe() — Register complete data snapshots for sequential storytelling
  • setKeyframe() / stepKeyframe() — Select or step keyframes through a Shiny proxy

Runtime Compatibility

Runtime Supported path
RStudio, R Markdown, and Quarto Standard htmlwidgets rendering
Shiny Widget rendering, reactive inputs, proxy data updates, and keyframe control
WebR 0.6.0 Precompiled Wasm package, R payload creation, and production-bundle rendering in Chromium

The WebR claim is intentionally bounded to the pinned end-to-end CI path; it does not imply that DuckDB-WASM or every browser host has been validated.

Customization

Customize plots by chaining additional functions:

  • setAxisFormat() — Set d3.js axis formats and labels
  • setAxisLimits() — Set axis ranges
  • defineCategoricalAxis() — Define a categorical axis
  • setMargin() — Adjust chart margins
  • setColorScheme() — Apply a custom color palette
  • setTheme() — Set theme tokens (colors, font, background)
  • setTransitionSpeed() — Control animation duration
  • setTransition() — Configure duration, easing, and stagger
  • setToolTipOptions() — Configure tooltip behavior
  • setToggle() — Enable layer toggle controls
  • flipAxis() — Swap x and y axes
  • suppressAxis() — Hide axes
  • suppressLegend() — Hide the legend
  • setLegendTitle() — Title the legend with the grouping variable
  • dragPoints() — Enable draggable points
  • setReferenceLines() — Add reference lines

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

About

Open Source Project to illustrate R+ d3.js DOM manipulation and plotting

Topics

Resources

Stars

7 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages