2017-04-13 70 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