Skip to content

mortonanalytics/myIO

Repository files navigation

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

myIO

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:

  • 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
  • setToolTipOptions() — Configure tooltip behavior
  • setToggle() — Enable layer toggle controls
  • flipAxis() — Swap x and y axes
  • suppressAxis() — Hide axes
  • suppressLegend() — Hide the legend
  • dragPoints() — Enable draggable points
  • setReferenceLines() — Add reference lines

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

About

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

Topics

Resources

License

Unknown, MIT licenses found

Licenses found

Unknown
LICENSE
MIT
LICENSE.md

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors