vegawidget (version 0.4.1)

as_vegaspec: Coerce to vegaspec

Description

Vega and Vega-Lite use JSON as their specification-format. Within R, it seems natural to work with these specifications as lists. Accordingly, a vegaspec is also a list. This family of functions is used to coerce lists, JSON, and character strings to vegaspec.

Usage

as_vegaspec(spec, ...)

# S3 method for default as_vegaspec(spec, ...)

# S3 method for vegaspec as_vegaspec(spec, ...)

# S3 method for list as_vegaspec(spec, ...)

# S3 method for json as_vegaspec(spec, ...)

# S3 method for character as_vegaspec(spec, encoding = "UTF-8", ...)

# S3 method for vegawidget as_vegaspec(spec, ...)

Arguments

spec

An object to be coerced to vegaspec, a Vega/Vega-Lite specification

...

Other arguments (attempt to future-proof)

encoding

character, if spec is a file or a URL, specifies the encoding.

Value

An object with S3 class vegaspec

Details

The character method for this function will take:

  • JSON string.

  • A path to a local JSON file.

  • A URL that returns a JSON file.

For Vega and Vega-Lite, the translation between lists and JSON is a little bit particular. This function, as_vegaspec(), can be used to translate from JSON; vw_as_json() can be used to translate to JSON.

You can use the function vw_spec_version() to determine if a vegaspec is built for Vega-Lite or Vega. You can use vw_to_vega() to translate a Vega-Lite spec to Vega.

See Also

Vega, Vega-Lite, vw_as_json(), vw_spec_version(), vw_to_vega()

Examples

Run this code
# NOT RUN {
  spec <- list(
    `$schema` = vega_schema(),
    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(spec)

  
# }
# NOT RUN {
    # requires network-access
    as_vegaspec("https://vega.github.io/vega-lite/examples/specs/bar.vl.json")
  
# }

Run the code above in your browser using DataCamp Workspace