2017-04-13 68 views
2

我想在闪亮的交互式阴谋。当我点击原始图时,我想要显示有关点击单独fluidRow(另一个表/图)的信息。我在网上流过一些示例来设置我的UI,其中单击输入变量名为“plot_click”。但是,我无法在我的服务器中找到此输入(当我在服务器中输入$时,输入变量列表中没有plot_click)。代码如下所示:闪亮的交互式阴谋无法找到服务器中的点击输入

shinyUI(fluidPage(


    # Application title 
    titlePanel("Test Project"), 

    sidebarLayout(
    sidebarPanel(
     selectInput("variable", "variable:", var_list), 
     selectInput("analysis_function", "Function", analy_fun_list)  ), 

    mainPanel(
     fluidRow(
     column(width = 4, 
       plotOutput("plot", height=350, click = clickOpts(id="plot_click") )  
       ) 
    ), 
     fluidRow(
     column(width = 6, 
       verbatimTextOutput("click_info")) 
    ) 

    ) 
) 

)) 

而且服务器代码调用点击输入低于:

output$click_info <- renderPrint({ 
    nearPoints(unlist(graph_react()[4]), input$plot_click, addDist=TRUE) 
}) 

为突出,变量“输入$ plot_click”在最后一行无法找到。

+0

需要更多的代码来弄清楚你在做什么。例如,没有提示如何提出'unlist(graph_react()[4])'。 –

+0

感谢您的回复。 nearPoints的第一个参数是一个数据框。这里,这个反应函数假设返回这种数据帧。由于该函数返回4个iterms作为列表,我使用unlist来检索最后一个。这里的问题是“input $”找不到“plot_click”作为输入选项。 – Kenny

回答

1

嗯,我编造了一个小例子,希望能够接近你,并告诉你它是如何工作的。

  • 创建了一些变量(X,Y,Z),以及一些解析函数(正弦,余弦,指数),和gerated数据的网格与他们
  • 由它们制成的曲线图基于输入变量在你的UI功能中选择。
    • 然后回荡从图上点击信息

这是代码:

library(shiny) 
library(ggplot2) 

var_list <- c("x","y","z") 
analy_fun <- c("sin","cos","exp") 

u <- shinyUI(fluidPage(
    titlePanel("Test ClickInfo"), 
    sidebarLayout(
    sidebarPanel(
     selectInput("variable", "variable:", var_list), 
     selectInput("analy_fun", "Analytic Function:", analy_fun)), 
    mainPanel(
     fluidRow(
     column(width = 4,plotOutput("plot", height=350, click=clickOpts(id="plot_click")) 
    ), 
     fluidRow(
     column(width = 6, verbatimTextOutput("click_info")) 
)))))) 
s <- function(input, output) { 
    gendata <- reactive({ 
    df <- expand.grid(x=-4:4,y=-4:4,z=-4:4) 
    df$sin <- sin(df$x+df$y+df$z) 
    df$cos <- cos(df$x+df$y+df$z) 
    df$exp <- exp(df$x+df$y+df$z) 
    df 
    }) 
    output$plot <- renderPlot({ 
    ggplot(gendata()) + geom_point(aes_string(x=input$variable,y=input$analy_fun)) 
    }) 

    output$click_info <- renderText({ 
    sprintf(" %s = %.2f \n %s = %.2f ",input$variable, input$plot_click$x, 
             input$analy_fun, input$plot_click$y) 
    }) 
} 
shinyApp(u, s) 

这里是产生闪亮的应用程序的屏幕截图与click_info

enter image description here

+0

感谢您的回复。看起来你有我的相同的用户界面。我没有看到你正在使用nearPoints。原始图(输出$图)基于igraph。在这种情况下,如何检索点击信息? – Kenny