我有一个表格,希望根据X中的值(0-100)使用6种不同的蓝色来对每个单元格进行着色。该表格在TabPanel中显示。
目前我正在使用shinyjs调用一个javascript函数,该函数选择我的表格并向<td>
标签添加CSS样式,具体取决于数值范围。
问题是,在第一次加载表格时(点击TabPanel),不会显示任何颜色,只有在重新加载后才会显示。
因此,我要么寻找R语言中的解决方案(无需额外的Javascript),要么寻找自动重新加载表格/TabPanel的方法。
library(shiny)
ui <- shinyUI(fluidPage(
tableOutput("dataTable")
))
server <- shinyServer(function(input, output) {
output$dataTable <- renderTable({
data <- getDataFromSomeWhere();
//Some operations on data
data
//I want to color every table cell, depening on value (f.e. 0-5 = white, 10-20 = light blue ...)
}, rownames = TRUE, colnames = TRUE)
shinyApp(ui = ui, server = server)
更新 最终我选择了JavaScript解决方案,但是使用了Shiny特定的js事件来获得所需的效果:
$(document).on("shiny:value", function(e) {
if (e.name == "myComponent") {
e.preventDefault();
$('#myComponent').html(e.value);
//color code etc.
}