我希望你能再次帮助我,因为我在Shiny中遇到了另一个问题:
我想让一个图形在被点击时立即改变。下面是一个最简示例: ui.R(显示可点击的图形和文本框)
我想让一个图形在被点击时立即改变。下面是一个最简示例: 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”,单击时我会在文本框中获取最近的字母)
注:该内容涉及IT技术,可能需要专业知识才能理解。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
})
})
})
我想要的是在图表中标记我点击的信件,例如用另一种颜色来标识。但到目前为止,我所有的尝试都没有成功。
nearPoints
非常方便。虽然我认为 ggplot 的解决方案更加简洁。 - RmIu