If you’re familiar with ggplot2, learning ggvis shouldn’t be too hard - it borrows from many familiar concepts. Note that ggvis is still very young, and many of the interfaces are likely to change as we learn more about what works well.
aes()
-> props()
ggplot()
-> ggvis()
ggvis has a function interface so you combine components using %>%
, not +
as in ggplot2.
Facetting is not currently supported, and when it is supported, it’s more like to resemble embedded plots than facetting in ggplot2.
In ggplot2, the definition of a geom was somewhat blurred, because of things like geom_histogram()
which combined geom_bar()
with stat_bin()
. The distinction is more clear in ggvis: pure geoms correspond to emit_*
which emit marks, and combined geoms and stats correspond to layers.
Using ggvis()
without adding any layers is analogous to qplot()
.
Vega provides a smaller set of scales than ggplot2 (just ordinal, quantitative, and time), but they are much more flexible than ggplot2 scales, and offer equivalent functionality.
ggplot2 has a two-level hierarchy - you have data and aes specifications in the plot and in each layer. ggvis provides an unlimited hierarchy - you can have as many levels as you need (and the data will only be computed once)
ggvis makes fewer assumptions about the type of data - data does not have to be a data frame until it has been processed by a transform.