【发布时间】:2018-03-07 06:59:55
【问题描述】:
我想知道是否可以使用nearPoints() 从带有滑块输入的交互式图表中获取行数据。我的 app.R 文件如下所示:
library('shiny')
library('ggplot2')
dt <-read.csv('file.csv')
ui <- fluidPage(
plotOutput("plot1", height = 550, click = "plot1_click"),
fluidRow(
column(3,
sliderInput("Obs", "Number of Books", min = 1, max = nrow(up), value = 50)
),
column(3, offset = 3,
h4("Legends"),
verbatimTextOutput("selected")
)
)
)
server <- function(input, output) {
mydata <- reactive({
dt[1:as.numeric(input$Obs),]
})
output$plot1 <- renderPlot({
test <- mydata()
ggplot(data = test, aes(x = test[,2], y = test[,1])) + geom_point()
})
output$selected <- renderPrint({
file <- mydata()
nearPoints(file, input$plot1_click, threshold = 10, maxpoints = 1,
addDist = FALSE)
})
}
shinyApp(ui = ui, server = server)
Shiny nearPoints() 在没有此滑块输入的情况下完美运行。当我使用滑块输入时,我无法获取行数据,直到最大值。有什么方法可以使用滑块输入吗?任何帮助表示赞赏。
【问题讨论】:
-
你用 renderUI 试过了吗?
-
只是为了检查我是否理解,您希望
input$plot1_click的值用于您的sliderInput?如果这是您想要的,您需要将您的sliderInput函数移动到您的server.R内的renderUI输出函数中。然后,您可以使用uiOutput在ui.R中渲染它。这是relevant documentation -
滑块输入是“Obs”,它控制传递给函数的行数。 “input$plot1_click”是鼠标点击的点。
-
请发布可重现的示例、数据和绘图?如果不为 OP 提供足够的详细信息来帮助您,就很难回答您的问题。
标签: r shiny slider interactive