gpt4 book ai didi

r - 是否可以将图的笔刷区域 "clear"变亮?

转载 作者:行者123 更新时间:2023-12-03 19:05:29 27 4
gpt4 key购买 nike

Shiny 的支持点击和画笔处理程序中的图。是否可以在不使用户在图上其他位置单击的情况下“清除”/“删除”/“删除”已刷过的矩形?例如,如果我只想在笔刷完成后存储笔刷的坐标,然后清除绘图,这就是我要使用的代码,但我不知道如何进行清除。

library(ggplot2)
library(shiny)

runApp(shinyApp(
ui = fluidPage(
plotOutput("plot",
brush = brushOpts("plotBrush", delay = 5000)),
actionButton("clear", "Clear")
),
server = function(input, output, session) {
values <- reactiveValues(brush = NULL)

output$plot <- renderPlot({
ggplot(cars, aes(speed, dist)) + geom_point()
})

brush <- reactive({
input$plotBrush
})

observeEvent(input$clear, {
cat(str(brush()))
# clear the brushed area
})
}
))

最佳答案

从Shiny version 0.14开始,可以使用session对象重置绘图的笔刷。

以下是一个简单的Shiny应用程序,演示了如何使用session$resetBrush(<BRUSH_ID>)清除刷过的区域。该应用程序允许突出显示点的区域或删除刷过的区域,同时保持点突出显示或去除刷过的区域并重置点的颜色。

有关官方文档,请参见https://shiny.rstudio.com/reference/shiny/latest/session.html的一半。

library(shiny)
library(ggplot2)

shinyApp(
ui = fluidPage(
plotOutput(
outputId = "plot",
brush = brushOpts(
id = "plotBrush",
delay = 5000
)
),
actionButton("clearBrush", "Clear brush"),
actionButton("resetPlot", "Reset plot")
),
server = function(input, output, session) {
output$plot <- renderPlot({
ggplot(mtcars, aes(wt, mpg)) +
geom_point() +
geom_point(
data = brushedPoints(mtcars, brush),
color = "#79D8CB",
size = 2
)
})

brush <- NULL
makeReactiveBinding("brush")

observeEvent(input$plotBrush, {
brush <<- input$plotBrush
})

observeEvent(input$clearBrush, {
session$resetBrush("plotBrush")
})

observeEvent(input$resetPlot, {
session$resetBrush("plotBrush")
brush <<- NULL
})
}
)

关于r - 是否可以将图的笔刷区域 "clear"变亮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30588472/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com