
R htmlwidgets binding for the FINOS Perspective library – a high-performance WebAssembly-powered data visualization engine with interactive pivot tables and multiple chart types.
# Install from GitHub
remotes::install_github("EydlinIlya/perspectiveR")
# Or using pak
pak::pak("EydlinIlya/perspectiveR")
# Or using devtools
devtools::install_github("EydlinIlya/perspectiveR")library(perspectiveR)
# Interactive data grid with full self-service UI
perspective(mtcars)
# Bar chart grouped by cylinder count
perspective(mtcars, group_by = "cyl", plugin = "Y Bar")
# Filtered scatter plot
perspective(iris,
columns = c("Sepal.Length", "Sepal.Width", "Species"),
filter = list(c("Species", "==", "setosa")),
plugin = "Y Scatter"
)limit), data export, table metadata
queries, and state save/restorefilter_op = "and" or filter_op = "or"arrow
package integration for efficient serialization of large datasetsTwo interactive demos are bundled with the package:
library(perspectiveR)
run_example() # list all available demos
run_example("shiny-basic")
run_example("crud-table")library(shiny)
library(perspectiveR)
ui <- fluidPage(
selectInput("dataset", "Dataset:",
choices = c("mtcars", "iris", "airquality")
),
perspectiveOutput("viewer", height = "600px")
)
server <- function(input, output, session) {
output$viewer <- renderPerspective({
data <- switch(input$dataset,
"mtcars" = mtcars,
"iris" = iris,
"airquality" = airquality
)
perspective(data)
})
}
shinyApp(ui, server)psp_update(proxy, data) — append new rows (upserts when
table has an index)psp_replace(proxy, data) — replace all datapsp_clear(proxy) — clear all rowspsp_restore(proxy, config) — apply a saved configpsp_reset(proxy) — reset viewer to defaultspsp_remove(proxy, keys) — remove rows by primary key
(indexed tables)psp_export(proxy, format) — export data (JSON, CSV,
columns, or Arrow); supports windowed export with
start_row/end_row/start_col/end_colpsp_save(proxy) — retrieve current viewer statepsp_on_update(proxy, enable) — subscribe to data change
eventspsp_schema(proxy) — get table schema (column names and
types)psp_size(proxy) — get table row countpsp_columns(proxy) — get table column namespsp_validate_expressions(proxy, expressions) — validate
expression stringsThe pre-built JS bundle is included. To rebuild from source:
cd tools
npm install
npm run build
npm run copy-themesApache License 2.0
‘Perspective’ is a project of the OpenJS Foundation. perspectiveR is an independent community package and is not affiliated with or endorsed by the OpenJS Foundation.