Я хотел бы создать блестящий сюжет в документе Rmarkdown, где цвет точек зависит от указателя мыши (hover). Однако желаемый график появляется только часть секунды, пока элемент наведения в списке ввода не будет установлен на NULL
. Почему это?Точечные цвета на основе зависания в R shiny и Rmarkdown
Пример:
---
title: "Untitled"
runtime: shiny
output: html_document
---
```{r,echo=FALSE}
library(ggplot2)
x <- rnorm(100)
y <- rnorm(100)
dfr <- data.frame(x, y)
give_col <- function(){
if(is.null(input$hover$y)){
rep(2, length(x))
}else{
(input$hover$y < dfr$y) + 1
}}
imageOutput("image_id", hover = "hover")
textOutput("text_id")
output$image_id <- renderPlot({
plot(dfr$x, dfr$y, col = factor(give_col()))
# plot(dfr$x, dfr$y) # Without col the give_col() element remains
# as can be seen in the output text
})
output$text_id <- reactive({paste(give_col())})
```
Если удалить цвет часть сюжета, выводимый текст ведет себя, как и ожидалось, так что я предполагаю, что это должно быть что-то с черчения себя (то же самое для pch
вместо col
или с ggplot()
вместо plot()
).
Любая помощь будет оценена по достоинству.
Спасибо за быстрый, кратким и ответ-точка! – user1965813
Почему переопределение, изменяющее 'вход $ hover', также не вызывает функцию' observEvent'? (это означало бы, что «observEvent» работает по-другому от простых недействительных, не так ли?) Ответ можно найти здесь [https://shiny.rstudio.com/reference/shiny/latest/observeEvent.html) – user1965813