У меня есть реактивная панель рассеивания ggvis (layer_points) в блестящей форме. Теперь я хочу добавить горизонтальную линию и вертикальную линию на графике, чтобы она соответствовала медианной оси x/y.shiny + ggvis: как добавить строку (медианную) к диаграмме рассеяния?
Я знаю, как вычислить его, но не как его отобразить в том же сюжете. мой код до сих пор:
vis <- reactive({
# Lables for axes
xvar_name <- names(axis_vars)[axis_vars == input$xvar]
yvar_name <- names(axis_vars)[axis_vars == input$yvar]
xvar <- prop("x", as.symbol(input$xvar))
yvar <- prop("y", as.symbol(input$yvar))
gegevens %>%
ggvis(x = xvar, y = yvar) %>%
layer_points(size := 50, size.hover := 200,
fillOpacity := 0.2, fillOpacity.hover := 0.5,
stroke = ~bron, key := ~Project.ID) %>%
add_tooltip(gegevens_tooltip, "hover") %>%
add_axis("x", title = xvar_name, format='d', grid = FALSE) %>%
add_axis("y", title = yvar_name, format='d', grid = FALSE) %>%
add_legend("stroke", title = "Gegevens van:", values = c("A", "B")) %>%
scale_numeric("x", trans = "log", expand=0) %>%
scale_numeric("y", trans = "log", expand=0) %>%
scale_nominal("stroke", domain = c("A", "B"),
range = c("blue", "#aaa")) %>%
set_options(width = 600, height = 600)
})
vis %>% bind_shiny("plot1")
вычислить медиану я использую:
output$defects <- renderText ({
d <- median(gegevens()$Total.Defects.Delivered)
paste("de mediaan voor totaal aantal Defects is:", d)
})
Много спасибо за помощь.
Я думаю, что [это] (http://stackoverflow.com/questions/31666210/how-can-i-add-a-horizontal-line-in-ggvis) ответит на ваш вопрос, ответ или комментарий , – aosmith
это действительно хорошая идея использовать мутацию, а затем отобразить ее на сюжет. Но я просто не могу заставить его работать. Проблема состоит в том, что медиана должна рассчитываться каждый раз, когда изменяется вход. как показано выше, я знаю, как вычислить медиану даже в реактивной. Но я не знаю, чтобы добавить его в сюжет. как его вычисляют после того, как будет сделан график, как я могу получить его в сюжете? может быть просто, но я просто не могу заставить его работать. –