R 使用DT Select行保持单元格颜色
我有一个DT数据表,它的单元格根据不同的变量着色。当您单击一行时,它会高亮显示相应绘图中的值,与示例中完全相同。但是,选择行时,高亮显示该行的新颜色将替代现有颜色。我希望该行高亮显示,但如果单个单元格已着色,则该单元格将保持其颜色 下面的截图显示了我得到的和我想要的。我修改了Yihui的代码,在截图下面制作了一个可复制的示例。任何帮助都将不胜感激R 使用DT Select行保持单元格颜色,r,shiny,dt,R,Shiny,Dt,我有一个DT数据表,它的单元格根据不同的变量着色。当您单击一行时,它会高亮显示相应绘图中的值,与示例中完全相同。但是,选择行时,高亮显示该行的新颜色将替代现有颜色。我希望该行高亮显示,但如果单个单元格已着色,则该单元格将保持其颜色 下面的截图显示了我得到的和我想要的。我修改了Yihui的代码,在截图下面制作了一个可复制的示例。任何帮助都将不胜感激 库(闪亮) 图书馆(DT) ui您可以通过一些自定义CSS实现这一点。将此代码块添加到fluidPage: tags$head( ta
库(闪亮)
图书馆(DT)
ui您可以通过一些自定义CSS实现这一点。将此代码块添加到fluidPage
:
tags$head(
tags$style(
HTML(
"table.dataTable tbody tr.selected td {
color: white !important;
background-color: #E34755 !important;}"
)
)
),
您还可以将CSS片段放入一个独立文件中,并将其放置在应用程序文件旁边的www
目录中。更多信息请参见此处
您可以为背景色(红色
)定义CSS类,并使用行回调将其添加到所需的单元格中。然后添加以下CSS:
.red {
background-color: #e34755;
}
table.dataTable tr.selected td.red {
background-color: #e34755 !important;
}
应用程序:
library(shiny)
library(DT)
rowCallback <- c(
"function(row, dat, displayNum, index){",
" if(dat[1] < 5){",
" $('td:eq(1)', row).addClass('red');",
" }",
"}"
)
css <- "
.red {
background-color: #e34755;
}
table.dataTable tr.selected td.red {
background-color: #e34755 !important;
}
"
ui <- fluidPage(
tags$head(
tags$style(HTML(css))
),
title = 'Select Table Rows',
fluidRow(
column(6, DTOutput('x1')),
column(6, plotOutput('x2', height = 500))
)
)
server <- function(input, output) {
output$x1 <- renderDT({
datatable(cars,
options = list(
columnDefs = list(list(targets = 3,visible = FALSE)),
rowCallback = JS(rowCallback)
)
)
})
# 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)
库(闪亮)
图书馆(DT)
这是非常有用的,但不是我想要的。在我的特定应用程序中,用户可以看到哪些单元格是彩色的,这一点非常重要。因此,我理想情况下希望单个单元格的颜色保持不变,而行的其余部分则以默认的淡蓝色突出显示。最好有一个特定于表的突出显示,上面将更改所有表的颜色!这正是我想要的。非常感谢。