【问题标题】:R shiny modules - hover tooltip on ggvis plotR闪亮的模块 - 悬停在ggvis图上的工具提示
【发布时间】:2016-05-08 13:09:10
【问题描述】:

我开始使用闪亮的模块,但无法在 ggvis 图上使用悬停工具提示显示文本。当我编写没有模块的代码时,这不是问题。感谢您的任何想法。

library(shiny)
library(ggvis)
library(dplyr)

plotModUI <- function(id){
        ns = NS(id)
        tagList(
                selectInput(ns("group"), "Select Group", choices=c("Group A", "Group B"), selected="Group A"), 
                ggvisOutput("ggvisplot")
        )
}

plotMod <- function(input, output, session, data){
        groupDat <- reactive({
                data %>% filter(group==input$group)
        })
        hoverText = function(x){
                paste0("(", format(x$xvar, digits=2), ", ", format(x$yvar, digits=2), ")")
        }
        observe({
                groupDat() %>% ggvis(~xvar, ~yvar) %>% layer_points() %>% 
                        add_tooltip(hoverText, "hover") %>% bind_shiny("ggvisplot")
        })
} 

ui <- fillPage(
        plotModUI("example")
)

server <- function(input, output, session){
        exdat = data.frame(xvar=runif(100), yvar=rnorm(100), group=c(rep("Group A", 50), rep("Group B", 50)))
        callModule(plotMod, "example", exdat)
}

shinyApp(ui, server)

【问题讨论】:

    标签: r module shiny tooltip ggvis


    【解决方案1】:

    不确定您是否必须使用模块,但将模块移动到 uiserver 函数似乎可以正常工作:

    ui <- fillPage(
        selectInput("group", "Select Group", choices=c("Group A", "Group B"), selected="Group A"), 
        ggvisOutput("ggvisplot")
    )
    
    server <- function(input, output, session){
        exdat = data.frame(xvar=runif(100), yvar=rnorm(100), group=c(rep("Group A", 50), rep("Group B", 50)))
        groupDat <- reactive({
            exdat %>% filter(group==input$group)
        })
        hoverText = function(x){
            paste0("(", format(x$xvar, digits=2), ", ", format(x$yvar, digits=2), ")")
        }
        observe({
            groupDat() %>% ggvis(~xvar, ~yvar) %>% layer_points() %>% 
                add_tooltip(hoverText, "hover") %>% bind_shiny("ggvisplot")
        })
    }
    
    shinyApp(ui, server)
    

    【讨论】:

    • 感谢您的建议,但我确实需要使用模块。这会影响到一个更大的项目。
    • 看起来这是 ggvis 的一个已知错误:github.com/rstudio/ggvis/issues/457
    猜你喜欢
    • 2014-09-17
    • 2017-03-15
    • 2013-05-03
    • 1970-01-01
    • 2015-03-13
    • 2017-06-02
    • 2020-02-18
    • 1970-01-01
    相关资源
    最近更新 更多