闪亮的 ggvis 交互性

ggvis interactivity in Shiny

我正在尝试使用悬停元素在 shiny 中嵌入一个 ggvis 图,但它似乎没有在 shiny 中呈现(即悬停元素)。以下是服务器和 UI 组件:

server.R:

library(choroplethrAdmin1)
library(choroplethr)
library(ggvis)
library(dplyr)

jor<-get_admin1_map("jordan")
jor$total <- runif(983) * 100


jor %>% ggvis(~long, ~lat) %>%
layer_paths(data = jor %>% group_by(name), 
          strokeWidth := 0, fill = ~total) %>%
hide_axis("x") %>% hide_axis("y") %>%
add_tooltip(function(data){paste("Gov: ", data$name, "<br>", "Total: ", as.character(data$lat))}, "hover")

shinyServer(function(input, output) {

jor%>%
ggvis(~long, ~lat) %>%
layer_paths(data = jor %>% group_by(name), 
          strokeWidth := 0, fill = ~total) %>%
hide_axis("x") %>% hide_axis("y") %>%
bind_shiny("p")
})

ui.R

library(shiny)
library(ggvis)

shinyUI(fluidPage(


titlePanel("Hello Shiny!"),


mainPanel(
  ggvisOutput("p")
)
))

代码中是否有错误,或者这是自然的?如果 ggvis 的交互性在 shiny 中丢失,那将是一个真正的失望。如果是这样,还有其他选择吗?

您正在使用 bind_shiny 和没有悬停点的 ggvis 情节绑定到 shiny。但是,您确实将它置于 shinyServer 函数之上。只需删除它,无论如何都会超出要求,并在 bind_shinyshinyServer 之前添加悬停。

server.R

library(choroplethrAdmin1)
library(choroplethr)
library(ggvis)
library(dplyr)

jor<-get_admin1_map("jordan")
jor$total <- runif(983) * 100

shinyServer(function(input, output) {

  jor%>%
    ggvis(~long, ~lat) %>%
    layer_paths(data = jor %>% group_by(name), 
                strokeWidth := 0, fill = ~total) %>%
    hide_axis("x") %>% hide_axis("y") %>%
    add_tooltip(function(data){paste("Gov: ", data$name, "<br>", "Total: ",     as.character(data$lat))}, "hover") %>%
    bind_shiny("p")
})