The goal of vegawidget is to render Vega-Lite and Vega specifications as htmlwidgets, and to provide you a means to communicate with a Vega chart using JavaScript or Shiny. Its ambition is to be a low-level interface to the Vega(-Lite) API, such that other packages can build upon it to offer higher-level functions to compose Vega(-Lite) specifications.
This is the key difference with the vegalite package: it provides a set of higher-level functions to compose specifications, whereas vegawidget concerns itself mainly with the rendering of the htmlwidget.
To be clear, although Vega-Lite offers a grammar-of-graphics, this package does not offer a user-friendly framework to compose graphics, like those provided by ggplot2 or ggvis. However, this package may be useful to:
When knitting to a non-HTML format, e.g. github_document
, this package provides a knit_print()
function that will intercept the normal renderer, using instead its own renderer, allowing you to specify "png"
, "svg"
or "pdf"
. It requires that nodejs be installed on your system, as well as the R packages rsvg and png. MacOS users will require an X11 system, such as XQuartz, to be installed.
For an example, see the GitHub rendering of this README file. For more details, please see the Render Using Vegawidget article.
For interactive applications, there are now functions to support vega-view’s addDataListener()
function: vw_add_data_listener()
, and vw_shiny_get_data()
.
You can install vegawidget from CRAN with:
The development version of vegawidget is available from GitHub with:
Note: There are documentation websites for both the CRAN version and the development version of this package.
Vega(-Lite) specifications are just text, formatted as JSON. However, in R, we can use lists to build specifications:
library("vegawidget")
spec_mtcars <-
list(
`$schema` = vega_schema(), # specifies Vega-Lite
description = "An mtcars example.",
data = list(values = mtcars),
mark = "point",
encoding = list(
x = list(field = "wt", type = "quantitative"),
y = list(field = "mpg", type = "quantitative"),
color = list(field = "cyl", type = "nominal")
)
) %>%
as_vegaspec()
The as_vegaspec()
function is used to turn the list into a vegaspec; many of this package’s functions are built to support, and render, vegaspecs:
The rendering of the chart above depends on where you are reading it:
On this package’s pkgdown site, it is rendered as part of an HTML environment, showing its full capabilities.
At its GitHub code site, the chart is further rendered to a static SVG file, then incorporated into the Markdown rendering.
For more, please see our Getting Started article. For other introductory material, please see:
Other articles for this package:
Contributions are welcome, please see this guide. Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.