我正试图制作一个有光泽的互动情节。当我点击原始图表时,我想显示有关我在单独的fluidRow(另一个表格/图表)中单击的点的信息。我在网上流了一些例子来设置我的UI,其中点击输入变量被调用" plot_click"。但是,我在服务器中找不到这个输入(当我在服务器中键入input $时,输入变量列表没有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)
})
要突出显示,变量&#34;输入$ plot_click&#34;在最后一行找不到。
答案 0 :(得分:1)
好吧,我编写了一个小例子,希望靠近你,它会告诉你它是如何工作的。
这是代码:
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
生成的闪亮应用的屏幕截图: