- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个表格,我想根据 X(=6) 种不同深浅的蓝色中的值 (0-100) 为每个单元格着色。该表显示在 TabPanel 中。
目前我正在使用 shinyjs 调用一个 javascript 函数来选择我的表并将 CSS 样式添加到 <td>
标签,取决于取值范围。
问题是,在第一次加载表格时(点击 TabPanel),没有颜色显示,只有在再次加载后才显示。
所以我要么在 R 中寻找解决方案(不需要额外的 Javascript),要么寻找一种自动重新加载 Table/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.
}
最佳答案
您可以使用 tableHTML
创建表格并根据条件设置其样式。
library(shiny)
library(tableHTML)
更改 ui
以使用 tableHTML
的输出函数:
ui <- shinyUI(fluidPage(
tableHTML_output("dataTable")
))
然后使用 render_tableHTML()
渲染其中生成的表格。
您可以使用函数 tableHTML()
创建纯 HTML 表格。然后,您可以使用 add_css_conditional_column()
创建条件(在本例中为 between
)以更改背景颜色(注意:您也可以使用其他 css。我使用了 #f6f6f6
而不是示例中的 white
,因为您不会在输出中看到差异)
server <- shinyServer(function(input, output) {
getDataFromSomeWhere <- reactive({
mtcars
})
output$dataTable <- render_tableHTML({
data <- getDataFromSomeWhere();
# //Some operations on data
data %>%
tableHTML(rownames = TRUE) %>%
add_css_conditional_column(conditional = 'between',
between = c(0, 5),
css = list(c('background-color'),
c('#f6f6f6')),
columns = 1:ncol(data)) %>%
add_css_conditional_column(conditional = 'between',
between = c(10, 20),
css = list(c('background-color'),
c('lightblue')),
columns = 1:ncol(data))
})
})
最后的结果是:
shinyApp(ui = ui, server = server)
您可以在 vignettes 中找到有关如何使用 tableHTML
的更多详细信息.
关于javascript - R shiny renderTable 改变单元格颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50798941/
在我的 shiny 应用程序中,我有一个 renderTable 填充了整数和小数。我的目标是显示没有任何小数位的整数,即。 e. 1应显示为“1”,所有小数位的小数,i。 e. 1.2345 应显示
我有一个非常简单的问题。我正在尝试有条件地为 shiny 的某些单元格着色renderTable .出于某种原因,下面的方法是将一个单元格向右着色,并将行中的单元格也推到一列上: test ' lib
我有一个表格,我想根据 X(=6) 种不同深浅的蓝色中的值 (0-100) 为每个单元格着色。该表显示在 TabPanel 中。 目前我正在使用 shinyjs 调用一个 javascript 函数来
我有一个 Shiny 的 R 应用程序,我在其中使用“renderTable”函数来呈现动态创建的表。 该表在一种情况下可能有 3 个字符列和 4 个数字列,在另一种情况下可能有 2 个字符列和 2
我正在使用 R Shiny 包中的 renderTable 函数,它返回一个带有行名称的表。理想情况下,我希望一个表格只显示两列,一列用于“月”,另一列用于“值”。我目前得到的输出包括行名称。我尝试了
我正在尝试将一个小图放入 Shiny 的 DT::dataTableOutput 中,虽然我可以将一个图放入 tableOutput 中没有问题,但它没有在 DT 版本中完全不显示。 library(
我有以下包含 Shiny-Flexdashboard 的自我: --- title: "FOO" runtime: shiny output: flexdashboard::flex_dashbo
我有带有 url 链接的 renderTable: output$url_list GOOGLE") data.frame(refs) }, sanitize.text.funct
我正在制作一个应用程序来使用 Shiny 分析时间序列数据。我使用的数据如下所示: V1 V2 1 2013-02-04 18:15:00 -4.746
我正在起草一个简单的 Shiny 应用程序,它提供对动态图表和相应表格的访问。 server.R 代码的相关部分如下所示: output$some_plot>>) # Define the d
我有一个 Shiny 的应用程序,它使用 renderDataTable 显示了我的数据的漂亮 html 表。 .然后我想做一些基本的统计、子集数据和计算均值和其他一些数据。 使用 renderTab
我是一名优秀的程序员,十分优秀!