【发布时间】:2016-02-02 12:21:32
【问题描述】:
当我偶然发现 Shiny 中的另一个问题时,我希望你能再次帮助我:
我希望图形在被点击的那一刻发生变化。这是一个最小的例子:
ui.R(显示可点击的图形和文本框)
shinyUI(fluidPage(
titlePanel("Title"),
sidebarLayout(
sidebarPanel(
),
mainPanel(
plotOutput("graph", width = "100%", click = "plot_click"),
verbatimTextOutput("click_info")
)
)
)
)
server.R(图形只包含“A”、“B”、“C”、“D”,点击时我会在文本框中找到最近的字母)
shinyServer(function(input, output, session) {
# Visualization output:
observe({
output$graph <- renderPlot({
data <- data.frame(x=c(1,2,1,2), y=c(1,1,2,2),
values=c("A","B","C","D"), stringsAsFactors=FALSE)
plot(data$x, data$y, pch=data$values)
})
})
# interaction click in graph
observe({
click <- c(input$plot_click$x, input$plot_click$y)
data <- data.frame(x=c(1,2,1,2), y=c(1,1,2,2),
values=c("A","B","C","D"), stringsAsFactors=FALSE)
nearest_point <- which.min(apply(data[,1:2], 1, function(a) sum(((click-a)^2))))
id <- data$values[nearest_point]
output$click_info <- renderPrint({
id
})
})
})
现在我想要在图表中标记我点击的字母,例如用另一种颜色。但到目前为止我所有的尝试都失败了。
【问题讨论】: