1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
|
library(ggvis)
# Discrete colours for fill and a manual scale for opacity
mtcars %>% ggvis(x = ~wt, y = ~mpg, fill = ~factor(cyl), fillOpacity = ~hp) %>%
layer_points() %>%
scale_numeric("opacity", range = c(0.2, 1))
# Control the domain of a scale - the y scale will go from 0 to whatever the
# maximum of the data is.
mtcars %>% ggvis(x = ~wt, y = ~mpg) %>% layer_points() %>%
scale_numeric("y", domain = c(0, NA))
# Control the y range with a slider
mtcars %>% ggvis(x = ~wt, y = ~mpg) %>% layer_points() %>%
scale_numeric("y", domain = input_slider(0, 50, c(10, 40), label = "Y range"))
# Control the lower y range with a slider
# FIXME: clamp=TRUE is necessary to work around a sizing bug
mtcars %>% ggvis(x = ~wt, y = ~mpg) %>% layer_points() %>%
scale_numeric("y", clamp = TRUE,
domain = input_slider(0, 50, label = "Lower Y",
map = function(x) c(x, NA))
)
# Multiple x scales
mtcars %>% ggvis(y = ~mpg, size := 25) %>%
layer_points(prop("x", quote(disp), scale = "xdisp")) %>%
layer_points(prop("x", quote(wt), scale = "xwt"), fill := "red") %>%
add_axis("x", "xdisp", orient = "top") %>%
add_axis("x", "xwt", orient = "bottom",
properties = axis_props(
ticks = list(stroke = "red"),
labels = list(fill = "red")
)
)
# Unscaled values in the data
mtc <- mtcars
mtc$color <- c("red", "teal", "#cccccc", "tan")
mtc %>% ggvis(x = ~wt, y = ~mpg, fill := ~color) %>% layer_points()
# Unscaled constant
mtcars %>% ggvis(x = ~wt, y = ~mpg, fill := "red") %>% layer_points()
|