具有交互式x轴范围的ggvis折线图

时间:2014-12-27 23:27:30

标签: r ggplot2 data-visualization ggvis

我希望能够

  1. 在ggvis中绘制折线图
  2. 添加两个交互式控件,允许我在图表上设置最小和最大x值
  3. 这听起来非常简单 - 我的代码是:

    minx = minx = input_numeric(1, 'Min x-val')
    maxx = input_numeric(1, 'Max x-val')
    
    data.frame(train.dt) %>% 
    ggvis(x = ~plot_idx, y = ~val) %>%
    layer_lines() %>% add_axis('x') %>%
    scale_numeric('x', domain = c(minx, maxx), clamp = T)
    

    然而,这不起作用。我收到此错误消息:

      

    “r [i1]中的错误 - r [-length(r):-(length(r) - lag + 1L)]:二元运算符的非数字参数”。

    如果我将domain参数中的minx和maxx替换为例如1和10,我的图表很好(但是是静态的)。有什么想法吗?

    谢谢!

1 个答案:

答案 0 :(得分:8)

这可能会有所帮助。由于没有可重复的数据,我决定使用CRAN手册中的一个例子。你需要做的是使用input_slider并选择x轴的最小值和最大值。在此示例中,您有一个双端滑块。这意味着您可以选择/更改最小值和最大值。 input_slider进入scale_numeric的域名。

# Set up input_slider
foo <- input_slider(1, 10, c(1, 6))

mtcars %>%
ggvis(x = ~wt, y = ~mpg, stroke = ~factor(cyl)) %>%
layer_lines() %>%
scale_numeric("x", domain = foo, clamp = TRUE)