vegawidget / ggvega

Translator from 'ggplot2' to 'Vega-Lite'
https://vegawidget.github.io/ggvega/
Other
46 stars 3 forks source link

Arbitrary geom_ support #75

Open hrbrmstr opened 4 years ago

hrbrmstr commented 4 years ago

(from DSC 2019)

Once things stabilize a bit more, setting this up as a discussion area for how it might work to support arbitrary geoms. Possibly dividing it into:

ijlyttle commented 4 years ago

Thanks, @hrbrmstr!

This is a wonderful idea - I fear the current ggvega design might get in the way.

We use pure R to translate the ggplot object to ggspec (JSON representation of ggplot object), then JavaScript (composed as TypeScript) to translate ggspec to vegaspec. We use JavaScript so that we can take advantage of the Vega-Lite schema itself to get the classes used to compose the vegaspec.

I can see how we might extend the ggspec part of the framework to allow other packages to support arbitrary geoms, but I don't see how we could do that for the JavaScript part.

I am interested to see if we could use {vlmetabuildr}, instead, to "get" the Vega-Lite classes. Of course, I am proud of what we have done using TypeScript; this is a compelling use-case for us to consider re-implementing using R.