У меня есть таблица данных DT, ячейки которой окрашены в соответствии с другой переменной. Когда вы нажимаете на строку, она подсвечивает значения на соответствующем графике, точно так же, как в примере здесь . Однако при выборе строки новый цвет, который выделяет строку, переопределяет мои существующие цвета. Я хотел бы, чтобы строка была выделена, но отдельная ячейка сохранила свой цвет, если она уже была окрашена.
На скриншотах ниже показано, что я получаю и чего хочу. Я изменил код Yihui, чтобы сделать воспроизводимый пример под скриншотами. Любая помощь будет оценена!
library(shiny)
library(DT)
ui <- fluidPage(
title = 'Select Table Rows',
fluidRow(
column(6, DT::dataTableOutput('x1')),
column(6, plotOutput('x2', height = 500))
)
)
server <- function(input, output) {
cars <- cars %>%
mutate(low_speed = ifelse(speed < 5, 1, 0))
output$x1 <- renderDataTable({
datatable(cars,
options = list(columnDefs = list(list(targets = 3,
visible = FALSE)))) %>%
formatStyle("speed", "low_speed",
backgroundColor = styleEqual(c(0, 1),
c("transparent", "#E34755")))
})
# highlight selected rows in the scatterplot
output$x2 <- renderPlot({
s <- input$x1_rows_selected
par(mar = c(4, 4, 1, .1))
plot(cars[ ,-3])
if (length(s)) points(cars[s, , drop = FALSE], pch = 19, cex = 2)
})
}
shinyApp(ui, server)