我有以下ggvis闪亮的代码,它会产生2个图形与R随附的mtcars数据集。在第一个图表中,如果我双击一个点,所有的点第二个图形中相同的齿轮数量(mtcars $齿轮)变为红色。汽车可以有3,4或5个档位。所以,如果我点击第一个图表中有3个齿轮的点,那么在第二个图表中,所有有3个齿轮的车辆都变为红色点。在同一图表中的交互 - ggvis
这是server.R代码 -
library(ggvis)
library(dplyr)
mtcars$id <- seq_len(nrow(mtcars))
shinyServer(function(input, output, session) {
lb <- linked_brush(keys = mtcars$id, "red")
mtcars %>%
ggvis(~mpg, ~wt) %>%
layer_points(fill := lb$fill, fill.brush := "red") %>%
lb$input() %>%
set_options(width = 300, height = 300) %>%
bind_shiny("plot1") # Very important!
# A subset of mtcars, of only the selected points
selected <- lb$selected
mtcars_selected <- reactive({
mtcars[selected(), ]
})
mtcars_selected1 <- reactive({
print(mtcars[mtcars$gear == mtcars[selected(), ]$gear, ])
})
vis <- reactive({
mtcars %>%
ggvis(~mpg, ~wt) %>%
layer_points() %>%
add_data(mtcars_selected1) %>%
layer_points(fill := "#dd3333") %>%
set_options(width = 300, height = 300)
})
vis %>% bind_shiny("plot2")
})
这是ui.R码 -
library(ggvis)
shinyUI(bootstrapPage(
ggvisOutput("plot1"),
ggvisOutput("plot2")
))
我的问题是,是否有可能做到这一点在同一张图上?那就是我想点击一个点,同一个图中所有具有相同齿轮数的点将变成红色。我已经搜索了很长时间,我似乎找不到任何方向。任何帮助将不胜感激。
能否请您做这个例子重复性好,这样我就可以尝试一下我的机器上?看起来有一些UI代码缺失。 – Andrie 2015-02-10 07:07:04
嗨,对不起,我忘了。我现在已经添加了server.R和ui.R代码。 – nafizh 2015-02-10 07:23:12